该文章是我初学Mysql编程的时候总结的。其中有很多的不对的地方。仅供初学的人一点参考。
触发器 trigger
1.概念:当一件事发生的时候,会引发其他相关的事件发生
2.创建语法:
监视地点(table)
监视事件( insert/update/delete)
触发事件( insert/update/delete)
触发事件( after/before)
mysql 只支持行级触发器,不支持语句级触发器,所以不能省略 for each row
3.语法
delimiter $ #以$为sql语句的结束和开始标记符
create trigger tn #定义一个触发器tn
after update #在update之后触发器执行
on xxtable #在xxtable上发生的时候
for each row
begin
sql..... #触发器执行的时候发生的语句
end$
查看已有触发器: show triggers
删除触发器: drop trigger t1
4.注意点
after/before 的用法,和逻辑有关系,在事件发生之前和发生之后
如果是引用传值, insert ,触发器执行另一个表格的时候使用new
insert ==> -new(这个为,另外一个表格执行的时候)
delete ==> +old
update ==> 先+old,再-new
声明变量 declare declare num int;