ERROR 1442 (HY000):because it is already used by statement which invoked this stored function/tr
看到mysql的触发器,随手写了一个:
mysql> create trigger t_ai_test
-> after insert on test
-> for each row
-> begin
-> update test set name='test_1';
-> end;$
Query OK, 0 rows affected (0.00 sec)
OK 没问题!
mysql> insert into test values(2,'test');$
ERROR 1442 (HY000): Can't update table 'test' in stored function/trigger because it is already used by statement which invoked this stored function/trigge
执行插入就报这个错。
查官网是这么回答的:
Old question, but in case anyone finds this: MySQL triggers can't manipulate the table they are assigned to. All other major DBMS support this feature so hopefully MySQL will add this support soon.
answered Feb 22 '10 at 21:16
“MySQL will add this support soon”,看来我还没有等到。那好吧,找解决办法先~
原因:MYSQL的限制触发器中不能对本表进行操作,否则没完没了的递归
解决办法:用set
mysql> create trigger t_ai_test
-> after insert on test
-> for each row
-> begin
-> set New.name=concat(concat(New.id,'_'),New.name);
-> end;$
最新文章
- WPF这样的界面应该如何编写呢?
- CSS实现水平垂直同时居中的5种思路
- JAVA设计模式《二》
- 运用SET ANSI_PADDING OFF创建某个字段为自增列的表,以及插入数据
- Eureka Web UI URL(eureka显示主界面路径设定)
- 原生Javascript实现图片轮播效果
- solrcloud集群部署
- linux iptables 配置
- 【开发技术】 使用JSP开发WEB应用系统-------笔记
- getBoundingClientRect获取元素在页面上的位置
- Vue2.x源码学习笔记-从一个小例子查看vm实例生命周期
- py3中reduce
- 压缩文件破解rarcrack-支持格式zip,rar和7z
- [Canvas]新版箴言钟表
- Delphi2010中DataSnap技术
- 算法抽象及用Python实现具体算法
- I.MX6 I2C DS1337 disable square-wave output
- 学习python2
- php session的简单使用
- c# 四则运算出错