首页 > 数据库技术 > 详细

数据库中的触发器

时间:2020-04-03 19:05:26      阅读:45      评论:0      收藏:0      [点我收藏+]

数据库中的触发器

触发器(TRIGGER)是由事件来触发某个操作。这些事件包括INSERT语句、UPDATE语句和DELETE语句。当数据库系统执行这些事件时,会激活促发其执行相应的操作。

使用触发器有一定的好处,比如同步更新数据到某个表等,不过触发器不能使用过多,会造成性能上的影响,这方面的影响还挺大,如果有一个上百万记录的表,不推荐使用触发器。

建表(以Mysql数据库为例)

  • t_book

    技术分享图片

  • t_bookType

    技术分享图片

  • t_book_log

    技术分享图片

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

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
new  old   触发的两个过度变量;
new:新增一条语句的新增对象;
old:删除一条语句的删除对象;

向t_book中插入一条数据时

INSERT INTO t_book VALUES(‘6‘,‘阿甘正传‘,100,‘Tom‘,2);

这时去 t_bookType 中查询就会发现 文学类 的数量增加了 1。

创建有多个执行语句的触发器

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_book_log values(null,NOW(),‘在book表里删除了一条数据‘);
END
|
DELIMITER ;
DELIMITER |   数据库语句   | DELIMITER;//告诉数据库这时一条语句内容

删除t_book中一条数据时

DELETE FROM t_book WHERE id=5;

这时去 t_bookType 中查询就会发现 文学类 的数量减少了 1。并且 t_book_log 中多了一条删除记录。

查看触发器

SHOW TRIGGERS;

删除触发器

DROP TRIGGER  trig_book;

数据库中的触发器

原文:https://www.cnblogs.com/renxiuxing/p/12628260.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!