SQL之触发器的使用

触发器的引入

触发器(trigger)是由事件来触发某个操作。这些事件包括对数据库的更删改查等操作。当数据库执行这些事件的时候,就会激活触发器执行相应的操作。

创建与使用触发器

  • 创建只有一个执行语句的触发事件
CREATE TRIGGER 触发器名 BEFORE|AFTER 触发事件
           ON 表名 FOR EACH ROW 执行语句
//举个栗子           
CREATE TRIGGER trig_book AFTER INSERT 
     ON t_book FOR EACH ROW
        UPDATE t_bookType SET bookNum=bookNum+1 WHERE new.bookTypeId=t_booktype.id;
        
INSERT INTO t_book VALUES(NULL, "first book", 1);   //当插入的时候,会将插入的书对应的类型表中相同id的数量加1     
  • 创建有多个执行语句的触发器
CREATE TRIGGER 触发器名 BEFORE|AFTER 触发事件
         ON 表名 FOR EACH ROW
         BEGIN
           执行语句
         END
举个栗子
DELIMITER |   //DELIMITER的作用是不让程序走到内部分号的时候停止执行。
CREATE TRIGGER trig_book2 AFTER DELETE 
    ON t_book FOR EACH ROW
    BEGIN
       UPDATE t_bookType SET bookNum=bookNum-1 WHERE old.bookTypeId=t_booktype.id;
       INSERT INTO t_log VALUES(NULL,NOW(),'在book表里删除了一条数据');//这里新增一张t_log表用于记录历史操作
    END 
|
DELIMITER ;

DELETE FROM t_book WHERE id=5;

查看触发器

  • SHOW TRIGGERS 语句查看触发器信息
SHOW TRIGGERS;
  • 在triggers表中查看触发器信息

删除触发器

DROP TRIGGER 触发器名
DROP TRIGGER trig_book;
    原文作者:安静的学点东西
    原文地址: https://www.jianshu.com/p/3ef73a2c0e67
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞