SQL基础知识复习
触发器被激活时,只有当触发条件为真时触发动作体才执行;否则触发动作体不执行。如果省略WHEN 触发条件,则触发动作体在触发器激活后立即执行。
?
7.触发动作体
?
? 触发动作体既可以是一个匿名PL/SQL过程块,也可以是对已创建存储过程的调用。如果是行级触发器,在两种情况下,用户都可以在过程体中使用NEW和OLD引用UPDATE/INSERT事件之后的新值和UPDATE/DELETE事件之前的旧值。如果是语句级触发器,则不能在触发动作体中使用NEW 或OLD进行引用。
?
例:定义一个BEFORE 行级触发器,为教师表Teacher定义完整性规则“教授的工资不得低于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;
?
?
?
删除触发器
?
DROP TRIGGER <触发器名> ON <表名>;
?
?
?
?
?
?