刚学习实例完mysql触发器, 前来分享学习经验. 菜鸟装逼, 老鸟勿喷
先来认识一下有关触发器的一些关键词. 在使用触发器时, 这些关键词将被用到, 请记下它们的模样和用途(意思)
create [创建]
drop [删除]
trigger [触发器]
before [之前]
after [之后]
insert [插入]
update [更新]
delete [删除]
on [在]
for each row [每一行] #这句话在mysql中是固定的, 似乎是条件吧, 每操作一条执行一次代码块.
begin [开始] #执行代码块开始
end [结束] #执行代码块结束
set [设] #通常给变量赋值
@@IDENTITY / LAST_INSERT_ID() [取最近插入记录的自增id]
#在mysql中, "@"前缀的是用户定义的变量, 直接用, 无需声明. "@@"前缀的为全局变量, 通常是系统定义
查询触发器:
SELECT * FROM information_schema.`TRIGGERS`;
删除触发器:
drop trigger 触发器名称
创建触发器:
create trigger 触发器名称 after insert on 表名称 for each ROW
BEGIN
#代码块
end;
create[创建] trigger[触发器] name[触发器名称]
after[之后|before=之前] insert[操作:insert/update/delete] on[在] table[表名称]
for each row
begin[代码块开始]
#code
end;[代码块结束]
create trigger insertUser
after insert on table_user
for each ROW
BEGIN
#set @user_ID = @@IDENTITY; #使用set把刚插入的id赋值给变量
select LAST_INSERT_ID() into @user_ID; #把select结果赋值给变量, select 字段名 into 变量名 form 表名....
insert into table_order (order_Uid,order_Owner) value(@user_ID, '我是触发器创建的');
end;
#在创建触发器的表里操作, 比如触发条件为插入. 然后在代码块里又插入. 简直作死, 报错删除触发器就好了