MySql 触发器与SQL server 触发器不同:
SQL Server 使用 inserted、deleted 代表被触发的数据。
MySQL NEW代表触发后的新数据行,Old代表当前触发数据被修改前的数据行
一、Insert
delimiter $$
CREATE TRIGGER trigger _Name_insert AFTER INSERT
ON test_tb FOR EACH ROW
BEGIN
INSERT INTO testtb2 (a,b)
VALUES
(NEW.ID,NEW.datet); #NEW 代表当前新增行
END;
$$
DELIMITER ;
二、Update
delimiter $$
CREATE TRIGGER trigger _Name_update AFTER UPDATE
ON test_tb FOR EACH ROW
BEGIN
INSERT INTO testtb2 (a,b)
VALUES
(NEW.ID,NEW.datet); #NEW 代表当前修改后数据行,使用Old 则代表被修改行修改前的数据
END;
$$
DELIMITER ;
三、Delete
delimiter $$
CREATE TRIGGER trigger _Name_dalete BEFORE DELETE
ON test_tb FOR EACH ROW
BEGIN
INSERT INTO testtb2 (a,b)
VALUES
(NEW.ID,NEW.datet); #NEW 代表当前删除行
END;
$$
DELIMITER ;
四、触发器的启用与禁用
ALTER TABLE [表名] DISABLE TRIGGER [触发器名] --禁用触发器
--需要执行的操作语句
ALTER TABLE [表名] ENABLE TRIGGER [触发器名] --启用触发器