创建mysql触发器

范例:

create trigger [触发名]

after insert on [表名]

for each row

begin #只执行一条语句的时候 去掉该行

update [表名] set user_id = new.id   #这里的new表示新插入的值

end #只执行一条语句的时候 去掉该行


成功例子:

create trigger shop

before insert on ts_shop

for each row

set new.iid = new.id


案例2多个值:

create trigger shop

before insert on ts_shop

for each row

set new.iid = new.id ,new.num_iid = -new.id



1、是insert的 就不能再触发insert 只能触发更新或删除 其他也一样


2、如果是只有一条语句,则一定不要加begin 和end 否则永远无法创建成功


3、如果你在触发器里面对刚刚插入的数据进行了 insert/update, 则出现这个问题。因为会造成循环的调用.

应该使用set操作,而不是在触发器里使用 update,比如

create trigger InsertUser

begin

set new.user_power='[resource]'

end;

另外这里必须在插入之前来执行该触发器。


4、删除触发器 drop trigger [触发器名] 要在创建的数据库里面运行该语句


5、查询触发器

SELECT * FROM information_schema.triggers WHERE TRIGGER_NAME='[触发器名]';