1.创建触发器
CREATE TRIGGER [触发器名称] –创建一个触发器
{BEFORE|AFTER} –设置触发器事件在发生在数据更改的之前还是之后执行。
{INSERT|UPDATE|DELETE}–设定在什么情况时触发事件:插入、更新或者删除数据时。
ON [表名称]–触发器是属于某一个表的:不能给同一张表的同一个事件安排两个触发器。
FOR EACH ROW–触发器执行的间隔。这句表示触发事件是行级的,对每一行有操作时都要触发一次事件。
[触发器SQL语句]–当触事件的时候,执行的语句。
2.删除触发器
DROP TRIGGER [触发器名称];
3.实例说明
创建两个表tab1,tab2;
DROP TABLE IF EXISTS tab1;
CREATE TABLE tab1(tab1_id VARCHAR(11));
DROP TABLE IF EXISTS tab2;
CREATE TABLE tab2(tab1_id VARCHAR(11));
创建触发器t_afterinsert_on_tab1:
DROP TRIGGER IF EXISTS t_afterinsert_on_tab1;
CREATE TRIGGER t_afterinsert_on_tab1
AFTER INSERT ON tab1
FOR EACH ROW
BEGIN
insert into tab2(tab2_id) values(new.tab1_id);
END;
该触发器实现了当增加tab1表id后自动将id增加到tab2中;
测试:
INSERT INTO tab1(tab1_id) values('0001');
SELECT * FROM tab1;
SELECT * FROM tab2;
可以发现数据已经自动更改。
在mysql控制台中,因为;代表着语句结束,所以用delimiter来设置语句以什么结束。
用法实例:
mysql>delimiter //
mysql>CREATE TRIGGER...
...
->END;
->//
mysql>delimiter ;
最后,恢复;为结束符。