1.修改分隔符号
delimiter $$
可以修改成$$或//都行
2、创建触发器函数名称
create trigger 函数名
3、什么样的操作触发,操作那个表
after:....之后触发
befor:....之前触发
insert:插入被触发
update:修改被触发
delete:删除被触发
on 表名
实例:在users表被添加信息后触发
after insert on users
4、for each row 声明每次触发都被执行
5、开始触发器代码
begin
6、触发器触发后执行代码块
7、结束触发器
end ;
8、修改分隔符
$$
delimiter ;
delimiter $$ -- 分隔符
create trigger after_inster_user -- 创建触发器的名称
after insert on `user` -- 用户表执行插入操作之后被出发的触发器
for each row -- 每行数据都要进行触发
begin
-- 执行代码块
end ;
$$
delimiter ; -- 结束$$的有效性更换成;
delimiter $$
create trigger update_product_price
before update on product
for each row
begin
-- 删除代码
if new.price=0 then
signal sqlstate '45000' set message_text='价格不允许改为0';
end if;
end;
$$
delimiter;
delimiter $$
create trigger update_product_price
before update on product
for each row
begin
-- 控制代码
declare result decimal(10,4);
if new.price=0 then
signal sqlstate '45000' set message_text='价格不允许改为0';
end if;
set result=(new.price-old.price)/old.price*100;
signal sqlstate '45000' set message_text=result;
if result>10 then
signal sqlstate '45000' set message_text='价格上下浮动不能超过10%';
end if;
end;
$$
delimiter;