触发器的讲解
二 mysql 触发器的使用
CREATE trigger actual_drill AFTER insert
on actual_drill_stress for each row
begin
SELECT sum(shield) into @tt from actual_drill_stress WHERE cdbm=new.cdbm ;
if new.cdzt !='0' and @tt>0 then
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '警告: 插入数据告警屏蔽中';
end if;
end;
三 触发器的坑
BEFORE与AFTER区别:
BEFORE:(insert、update)可以对new进行修改,AFTER不能对new进行修改,两者都不能修改old数据。
对于INSERT语句, 只有NEW是合法的;
对于DELETE语句,只有OLD才合法;
对于UPDATE语句,NEW、OLD可以同时使用。
总结:BEFORE 或 AFTER 关键字决定何时执行触发器动作,决定是在关联行的插入、修改或删除之前或者之后执行触发器动作