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 [触发器名] --启用触发器