SQL触发器(2)

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

原文连接(https://blog.csdn.net/weixin_39941298/java/article/details/81080353)数据库

1、建立使用触发器学习

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

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

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

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表:code

 

 t_bookType表:对象

 

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

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

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

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

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;

2、查看触发器

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

SHOW TRIGGERS;

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

DROP TRIGGER trig_book2 ;

相关文章
相关标签/搜索