美文网首页
SQL之触发器的使用

SQL之触发器的使用

作者: 安静的学点东西 | 来源:发表于2017-09-07 12:13 被阅读320次

    触发器的引入

    触发器(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;
    

    相关文章

      网友评论

          本文标题:SQL之触发器的使用

          本文链接:https://www.haomeiwen.com/subject/sdcijxtx.html