Mysql Trigger 使用Tips

Mysql Trigger使用贴士

输入方式

  1. Mysql WorkBench 只能在Alter Table的Triggers标签页添加, 在Query Window 添加时要加上use databasename$$

  2. Navicat for Mysql可以直接在Sql Window添加。

注意事项

  1. 不可以在View上建Trigger

  2. 可以修改New的数据

  3. 不可以修改Old的数据

使用实例

现有一张表T_A与其他数据同步数据,检测到插入请求时,在T_A检查是否有该条记录,有则Update对应数据,否则Insert新数据,直接在T_A上建Trgger不符合规则,实现方式:

  1. 新建一张T_B, 接受同步表的插入请求;

  2. 在T_B新建一个Before Insert Trigger,命名为TG_B_A;

  3. 接受到插入请求时,去T_A检验是否存在数据,有则在T_A做Update操作,否则Insert.

简单示例如下:

DELIMITER$$
CREATE TRIGGER TG_B_A BEFORE INSERT
ON T_B FOR EACH ROW 
BEGIN
    DECLARE A_COUNT INT;
    SELECT COUNT(*) FROM T_A WHERE A_ID LIKE '1' INTO A_COUNT;
    WHILE A_COUNT > 0 DO
        UPDATE T_A SET A_ID='1';
        SET A_COUNT = -1;
    END WHILE;
    WHILE A_COUNT = 0 DO
        INSERT T_A VALUES ('1');
        SET A_COUNT = -1;
    END WHILE;
END;
$$

Devin Sun

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值