zoukankan      html  css  js  c++  java
  • SQL触发器(2)

    在实习过程中涉及到SQL触发器,在校时未学习过触发器的知识,因而进行上网自学整理,以下内容为我对网上资料收集整合,若侵权请联系删除,谢谢。

    原文链接(https://blog.csdn.net/weixin_39941298/java/article/details/81080353)

    一、创建使用触发器

    (1)创建只有一个执行语句的触发器

    create trigger 触发器 before|after 触发事件 
            on  表名 for each row 执行语句

    eg:创建一个trig_book触发器,该触发器在表t_book插入一条数据后,对表t_bookType的bookNum数量对应的bookTypeId会自动加1

    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,'java好',100,'ke',1);

    t_book表:

     t_bookType表:

     (2)创建多个执行语句的触发器

    create trigger 触发器名 before|after 触发事件
               on 表名 for each row 
              begin
                   执行语句列表
              end

    DELIMITER |   数据库语句   | DELIMITER;//告诉数据库这时一条语句内容

    new   old   触发的两个过度变量;new:新增一条语句的新增对象;old:删除一条语句的删除对象;

    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表里删除了一条数据');
     
              delete from t_test where old.bookTypeId = t_test.id;
        end
    |
    
    
    DELIMITER ;

    DELETE FROM t_book WHERE id=5;

    二、查看触发器

    (1)SHOWTRIGGERS 语句查看触发器信息

    SHOW TRIGGERS;

    (2)在 triggers 表中查看触发器信息

    DROP TRIGGER trig_book2 ;

  • 相关阅读:
    servlet规范
    Java --Servlet 32个经典问题
    TCP的三次握手与四次挥手理解及面试题(很全面)
    TCP‘三次握手’和‘四次挥手’(通俗易懂)
    leetcode:122. Best Time to Buy and Sell Stock II(java)解答
    STM32通过调用库函数进行编程
    Swift下调用Touch ID实现指纹识别
    SpringMVC+MyBatis+JMS+JTA(分布式事务)
    windows下的两个等待函数
    Ubuntu 14.04正式公布,一个不眠之夜
  • 原文地址:https://www.cnblogs.com/iris-/p/13025559.html
Copyright © 2011-2022 走看看