看到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;$

最新文章

  1. WPF这样的界面应该如何编写呢?
  2. CSS实现水平垂直同时居中的5种思路
  3. JAVA设计模式《二》
  4. 运用SET ANSI_PADDING OFF创建某个字段为自增列的表,以及插入数据
  5. Eureka Web UI URL(eureka显示主界面路径设定)
  6. 原生Javascript实现图片轮播效果
  7. solrcloud集群部署
  8. linux iptables 配置
  9. 【开发技术】 使用JSP开发WEB应用系统-------笔记
  10. getBoundingClientRect获取元素在页面上的位置
  11. Vue2.x源码学习笔记-从一个小例子查看vm实例生命周期
  12. py3中reduce
  13. 压缩文件破解rarcrack-支持格式zip,rar和7z
  14. [Canvas]新版箴言钟表
  15. Delphi2010中DataSnap技术
  16. 算法抽象及用Python实现具体算法
  17. I.MX6 I2C DS1337 disable square-wave output
  18. 学习python2
  19. php session的简单使用
  20. c# 四则运算出错

热门文章

  1. try-catch语句讲解
  2. SQL中自定义拆分为新表的函数
  3. 在JavaScript中实现yield,实用简洁实现方式。
  4. js获取服务器时间
  5. javascript和swf在网页中交互的一些总结
  6. codeforces 459C Pashmak and Buses(模拟,组合数A)
  7. 【linux】文字提取
  8. 思考 ”前端开发人员都在关注的 GitHub 资源“
  9. 20款最受欢迎的HTML5游戏引擎收集
  10. lintcode:逆序对