Can't update table 'a' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.很清楚,不能再更新A表的时候,在触发器继续更新
解决方案 »
- 请问存储过程和预处理语句,是同一个概念么?
- 请各位大神指点如何执行'use database_name'类型的字符串SQL
- 请大侠指点,这些系统每天偶尔出现mysql反应很慢 甚至卡死
- 子查询问题?????
- 升星星,无条件散分
- 求助sql语句,高难度的,我弄不出来
- MySQL中如何用变量插入自增长值
- MYSQL数据库不能启动,各位达 人帮忙解决一下
- 听说MYSQL是开放源码的,什么地方可以下?
- 求助XP 32位系统MySql安装出错,求帮助啊!!
- MYSQL5.6启动错误Can't start server: Bind on TCP/IP port: No such file or directory
- mysql存储过程
after insert on a for each row
begin
update a set id=(select b.id from b where b.name=a.name);
end;
MYSQL的触发器中无法对本表自身进行操作,以防递归触发。
错误信息
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5 0.000 sec
那你的语句就应该为
create trigger t_afterinsert_on_tab_abnorrecord
after insert on a for each row
begin
insert into b(id,name) values(new.id,new.name)
end;
你看看这句可以不
create trigger t_afterinsert_on_tab_abnorrecord
after insert on a for each row
begin
update a set id=(select b.id from b where b.name=new.name);
end;