1.一个触发器能够坚持行值被插入或被更新,和它能坚持什么值被删除或什么值被更新
2.触发器能够改变值在它们被插入表前或被用来更新一个表。例如,你能检测是否超过了范围和修改它们在范围内。
3.你能够修改如何插入,删除或更新工作。例如,在一个插入,你能够提供一个默认的值如日期使用当前时间做默认值。
19.2 trigger concepts
create trigger Capital_bi
BEFORE INSERT
ON Capital
FOR EACH ROW
SET NEW.Population=
IF(NEW.Population <0,0,Truncate(New.populaion,-3));
插入前过滤
这FOR EACh ROW语法意味着执行发生一次对于要插入的行,删除,或者更新而不是对于所有的行
mysql>delimiter//
mysql>create trigger capital_bu
> before update
> on capital
>for each row
>begin
>set @country=0ld.count
end
//
恢复界定delimiter ;
19.4 触发器的限制
1.不能使用CALL语句
2.不能使用begin或者end
3.不能创建一个触发器对于临时表或一个视图
4.触发器创建时同样二进制的先
19.5 引用旧的和新的列值
使用OLD来引用旧值,使用NEW来引用新值。OLD被用来是只读的
19.5 删除一个触发器
drop trigger worl.captital_bi;
19.7 需要的特权对于触发器