首页 / MYSQL / 关于Mysql 触发器
关于Mysql 触发器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了关于Mysql 触发器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2995字,纯文字阅读大概需要5分钟。
内容图文
![关于Mysql 触发器](/upload/InfoBanner/zyjiaocheng/468/a7e092c03e524bde93c15c804df85d4e.jpg)
因为只是用于测试,结构上我就随便建了,就创建一个自增列主键就ok了。
然后在testTri表创建一个触发器(创建一个最简单的触发器奏是这样子,简单吧╮(╯_╰)╭)
drop trigger if exists TR_testTri; delimiter // create trigger TR_testTri after insert on testTri for each row begin insert into test(Col1,Col2,Col3,Col4) values (1,2,3,5); end// delimiter ;
然后再 testTri 上面添加一行记录,明显,很顺利地,test表也增加了一行记录。
insert into testTri (Col1,Col2,Col3,Col4) values (1,2,3,4);
结果 test 和 testTri 都写入了一行的记录。
正常的情况就写到这里了。当然罗 Insert 是这样玩,Update/Delete 也是这样玩, Before /After 在mysql 里面也只是执行顺序问题而已。
然后我就测试了集中情况。
1 触发器自行递归,在表 testTri 创建一个触发器,触发内容就是往 testTri 写入一条记录。做一下实验
drop trigger if exists TR_testTri; delimiter // create trigger TR_testTri after insert on testTri for each row begin insert into TR_testTri(Col1,Col2,Col3,Col4) values (1,2,3,5); end// delimiter ;
创建成功,语法上并没有任何问题。然后添加一行记录
insert into testTri (Col1,Col2,Col3,Col4) values (1,2,3,4);
然后华丽丽地报错了。
insert into testTri (Col1,Col2,Col3,Col4) values (1,2,3,4) Error Code: 1442. Can‘t update table ‘testtri‘ in stored function/trigger because it is already used by statement which invoked this stored function/trigger. 0.047 sec
所以验证了不能自己递归自己。
2 2个表相互循环递归,在test 和 testTri 都创建一个触发器,相互写入数据
drop trigger if exists TR_testTri; delimiter // create trigger TR_testTri after insert on testTri for each row begin insert into test(Col1,Col2,Col3,Col4) values (1,2,3,5); end// delimiter ; drop trigger if exists TR_testTri2; delimiter // create trigger TR_testTri2 after insert on test for each row begin insert into testTri(Col1,Col2,Col3,Col4) values (1,2,3,6); end// delimiter ;
创建成功,语法上并没有任何问题。然后添加一行记录
insert into testTri (Col1,Col2,Col3,Col4) values (1,2,3,4);
然后华丽丽地又报错了。
insert into testTri (Col1,Col2,Col3,Col4) values (1,2,3,4) Error Code: 1442. Can‘t update table ‘testtri‘ in stored function/trigger because it is already used by statement which invoked this stored function/trigger. 0.047 sec
证明这种循环引用也是不被允许的。
做了一个这样的简单实验。证明了mysql 在触发器里面不适宜玩太高级的逻辑,不然真的不知道到底错误是怎样出现的。但是相对来说,对于程序的控制也会容易一些,也是有友好的一面~
PS:在下对Mysql 不甚熟练~还请大家指导
关于Mysql 触发器
标签:
本文系统来源:http://www.cnblogs.com/Gin-23333/p/5667091.html
内容总结
以上是互联网集市为您收集整理的关于Mysql 触发器全部内容,希望文章能够帮你解决关于Mysql 触发器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。