数据库:创建和使用触发器

触发器概述

触发器(Trigger)是一种特殊的存储过程,它与表紧密相连,可以是表定义的一部分。当预定义的事件发生时,触发器将会自动执行。触发器基于一个表创建,但是可以针对多个表进行操作,因此触发器可以用来对表实施复杂的完整性约束。当触发器保存的数据发生改变时,触发器被自动激活,从而防止对数据进行不正确的修改。触发器的优点如下:

  • 触发器自动执行,在表的数据做了任何修改之后立即激活。

  • 触发器可以通过数据库中的相关表进行层叠更改

  • 触发器可以强制限制,这些限制比用CHECK约束定义的更复杂。与CHECK约束不同的是,触发器可以引用其他表中的列。

创建触发器
# 创建触发器
CREATE TRIGGER trigger_name trigger_time trigger_event ON tb_name FOR EACH ROW trigger_statement;
trigger_time:
    BEFORE|AFTER
trigger_event:
    INSERT|UPDATE|DELETE

在触发器的SQL语句中,可以关联表中的任何列,使用OLD和NEW列名来标识,如OLD.col_name、NEW.col_name。OLD.col_name关联现有行的一列在被更新或删除前的值,NEW.col_name关联一个新行的插入或更新现有行的一列值。

  • 对于INSERT语句,只有NEW是合法的。

  • 对于DELETE语句,只有OLD是合法的。

  • 对于UPDATE语句,NEW和OLD可以同时使用。

定义外键约束和触发器是保证数据完整性的两种不同方式,并不矛盾。

查看触发器

查看触发器是指查看数据库中已存在的触发器的定义、状态和语法信息等。

SHOW TRIGGERS;
或
SELECT * FROM information_schema.triggers [WHERE trigger_name='触发器名称'];
删除触发器
DROP TRIGGER [dbname.]trigger_name;

(最近更新:2019年09月03日)

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值