前言
本文介绍MySQL
中触发器的创建和功能。
一、触发器的作用
触发器的作用即是当触发器监控的某一事件发生时,执行触发器指定的动作。这样有助于保证数据库的一致性,用户定义的数据的一致性。
事件即是指INSERT、UPDATE、DELETE
等动作
二、触发器的创建
触发器的创建语法如下:
DELIMITER $#应该是考虑到语法解析的缘故,告诉系统“;”并非一条sql语句的结束
CREATE TRIGGER `触发器名称`#为了方便管理,所以一般的对象创建时都有名称
BEFORE或AFTER INSERT或UPDATE或DELETE ON `表名`#指定监控的表和事件
FOR EACH ROW
BEGIN
执行语句块;#可以有多条sql语句
END $
DELIMITER ;
创建触发器完毕之后,当监控表发生了监控事件,触发器就会执行BEGIN END
之间的语句。
INSERT
时插入新数据,此时的新数据可以理解为储存在一个名为NEW
的表中,通过访问该表的指定字段,可以获得插入记录的数据信息。
以下示例部分代码:如
WHERE 字段=new.某字段;
INSERT INTO `表名` VALUES (new.`字段`);
DELETE
删除旧数据,此时旧数据可以理解为储存在一个名为OLD
的表中,通过访问该表的指定字段,可以获得原来记录的数据信息
INSERT INTO `表名` VALUES (old.`字段`);
创建触发器时的执行语句块是很灵活的,可以充分运用以保证数据的一致性和完整性。
三、触发器的查询
查询具体触发器的信息以下代码足够了
SHOW TRIGGERS;
SHOW CREATE TRIGGER `触发器名称`;
以上两条查询语句都能看到触发器的监控表,监控事件以及执行语句块。
考虑到可读性,可以在mysql
的命令行下输入
SHOW TRIGGERS\G;
SHOW CREATE TRIGGER `触发器名称`\G;
三、触发器的删除
因为创建触发器时指定了名字,那触发器的删除就很方便了。
DROP TRIGGER `触发器名称`;
总结
记录了触发器创建、删除和查询的常用语句。如有纰漏,还望指教!