赞
踩
1、修改分隔符符号
delimiter $$
可以修改成$$ //都行
2、创建触发器 函数名称
create trigger 函数名
3、什么样的操作触发,操作那个表
after:之后触发
before:之前触发
insert:插入被触发
update:修改被触发
delete:删除被触发
on 表名
实例:在users表中被添加信息后触发
after insert on users
4、for each row 声明每次触发都被执行
5、开始触发器代码
begin
6、触发器触发后执行代码块
7、结束触发器 end;
8、修改分隔符
$$
delimiter;
- -- 一般sql的分隔符是;
- delimiter $$ -- 将分隔符改为其他符号
- CREATE TRIGGER insert_user_wallet
- after INSERT on `user`
- for each row -- 每行操作都要出发触发器
- begin -- 开启触发器
- -- 所有的业务逻辑代码都需要写在中间
- insert into user_wallet (user_id,balance)VALUES(new.user_id,'0.00');
- end ;
- $$-- 真正的结束符号
- delimiter ;-- 完活后改回来;
- delimiter $$
- delimiter TRIGGER user_delete_info
- BEFORE delete on `user`
- for each row
- begin
- -- 代码区
- DELETE from user_wallet where user_id=old.user_id;
- DELETE from user_wallet_log where user_id=old.user_id;
- end;
- $$
- delimiter;
- delimiter $$
- create TRIGGER product_update_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;
- if abs(result)>10 then
- signal sqlstate '45000' set message_text='单次修改的价格波动不能高于10%';
- end if;
- end;
- $$
- delimiter;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。