触发器的定义
触发器是一种特殊的存储过程,可以用来对表实施复杂的完整性约束,保持数据的一致性。当触发器所保护的数据发生改变时,触发器会自动被激活,并执行触发器中所定义的相关操作,以保证关联数据的完整性。一般激活触发器的事件包括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操作。
任务实现
核心代码如下:
1)按照student表的结构创建备份表student_bak
mysql> CREATE TABLE student_bak (
-> S_name varchar(10) NOT NULL,
-> S_id bigint(8) NOT NULL,
-> Dept_id tinyint(3) NOT NULL,
-> S_age tinyint(2) NOT NULL,
-> S_gender char(2) NOT NULL);
Query OK, 0 rows affected (0.05 sec)