触发器是一种特殊的存储过程,可以用来对表实施复杂的完整性约束,保持数据的一致性。当触发器所保护的数据发生改变时,触发器会自动被激活,并执行触发器中所定义的相关操作,以保证关联数据的完整性。一般激活触发器的事件包括INSERT、UPDATE和DELETE事件。
使用CREATE TRIGGER可以创建所需的触发器,具体语法格式如下:
CREATE TRIGGER 触发器名称
{ { BEFORE | AFTER} {[DELETE] [,] [INSERT] [,] [UPDATE] }
ON 表名
FOR EACH ROW
BEGIN
sql语句 [ ...n ]
END
语法说明:
1)触发器名称:指定要创建的触发器的名称,应符合标识符的命名规则。
2)BEFORE|AFTER:是用来指明触发器是在激活它的语句之前或之后触发。
3){[DELETE] [,] [INSERT] [,] [UPDATE] } :是指在表上执行哪些数据操作语句时激活触发器的关键字,必须至少指定一项。
4)表名:是指触事件操作的表的名称。
5)FOR EACH ROW:表示任何一条记录上的操作满足触发事件都会触发该触发器。
6)sql语句 [ ...n ] :定义触发器触发后,要执行的SQL操作。
2)在student表中创建触发器insert_stu。
mysql> DELIMITER #
mysql> CREATE TRIGGER insert_stu
-> AFTER insert
-> ON student
-> FOR EACH ROW
-> BEGIN
-> INSERT INTO student_bak
-> VALUES(new.s_name,new.s_id,new.dept_id,new.s_age,new.s_gender);
-> END#