数据库--触发器

时间:2022-12-29 05:11:32

1.触发器是用户定义在表上的一类由事件驱动的特殊过程。一旦定义,任何用户对表的增,删,改操作均由服务器自动激活相应的触发器。

CREATE TRIGGER <触发器名>
{BEFORE | AFTER} <触发事件> ON <表名>
FOR EACH {ROW | STATEMENT}
[WHEN <触发条件>]
<触发动作体>

创建表的用户才可以在表上创建触发器,一个表只能创建一定数量的触发器
同一模式下,触发器的名称必须是唯一的,并且触发器名和表名必须在同一模式下
触发事件可以是INSERT ,DELETE, UPDATE,或者几个的组合
2.定义一个BEFORE行级触发器,为教师表定义完整性规则“教授的工资不得低于4000,如果低于4000,自动改为4000”

CREATE TRIGGER Insert_Or_Update_Sal /*在教师表上定义触发器*/
BEFORE INSERT OR UPDATE ON Teacher/*触发事件是插入或者更新操作*/
FOR EACH ROW/*这是一个行级触发器*/
AS BEGIN
IF (new.Job='教授')AND (new.Sal<4000) THEN
new.Sal:=4000
END IF;

END;

同一个表上有多个触发器,执行顺序如下:
(1)执行该表上的BEFORE触发器
(2)激活触发器的SQL语句
(3)执行该表上的AFTER触发器
3.删除触发器

DROP TRIGGER <触发器名> ON <表名>
DROP TRIGGER Insert_Sal ON Teacher;