写法思路:
1每一句SQL要写分隔符
2开始改变分隔符,结束改回原分隔符
注:虽然看着方便,但是从原理上增加了我们语句的长度的对时间、内存的消耗,当然时间很明显
内存具体分析。所以真正的开发中并不推荐、尽量避免或是说尽量少的使用。
具体格式
use 数据库名;(两种写法,在这写了在create就可以不用写了,反之亦然)
drop trigger if exists 触发器名;---》存在触发器x就删除他
DELIMITER // --》mysql自定义的语句停止标识关键字-->目的是改变语句的停止符号
-->例子改为了://
CREATE TRIGGER [数据库名] . 触发器名-- >有个点
< [ BEFORE | AFTER ] > --》定义触发器触发开始行动的时间是在 某个行为之前还是之后
< [ INSERT | UPDATE | DELETE ] > --》定义触发器触发在 某个行为开始行动
ON [dbo]<tableName> --》定义给哪一张表的
FOR EACH ROW --》必须有--对每一行都是如此
BEGIN--》相当于Java中的左大括号 {
自定义变量 关键字《set || declare》 变量名 变量属性;
if (bool) then
[else if then]
end if;
[new || old] -->一个表示新数据的一行,老的那一行,在调用的时候只能调用字段,不能调用集合,即可以使用new.no不能使用new
END // 相当于Java中的右大括号 }
DELIMITER ; -->触发器定义完成之后再将mysql的语句结束符号改回来,避免后期一些错误。