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 [觸發器名] --啟用觸發器