首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

触发器有关问题 (过节也不能休息,大家帮帮小弟我)

2012-09-28 
触发器问题 (过节也不能休息,大家帮帮我)假设有A,B,C 三个表A表有个触发器 aa 用来将新插入的数据处理后放

触发器问题 (过节也不能休息,大家帮帮我)
假设有A,B,C 三个表

A表有个触发器 aa 用来将新插入的数据处理后放入B表
B表中也有个触发器 bb 用来将新插入的数据处理后放入C表 并删除A表中触发器以处理的记录
数据的流向 A->B->C 都是通过触发器完成的

删除A表中的记录的语句 无论放在 aa 或则 bb 都会报错

Can't update table 'A' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

很难理解 bb根本没有去更新或插入记录到A 为什么还会冲突

[解决办法]
因为你的 A 触发了 B (A表有个触发器 aa 用来将新插入的数据处理后放入B表)
,B又触发了 C,(B表中也有个触发器 bb 用来将新插入的数据处理后放入C表)
然后C 又去操作A。(并删除A表中)
形成的循环。
[解决办法]
最终效果是再A中插入数据,然后删除A的数据,
mysql只判断你在处理A的数据,然后又触发回来处理A的数据,如此就是循环
[解决办法]

探讨
因为你的 A 触发了 B (A表有个触发器 aa 用来将新插入的数据处理后放入B表)
,B又触发了 C,(B表中也有个触发器 bb 用来将新插入的数据处理后放入C表)
然后C 又去操作A。(并删除A表中)
形成的循环。

[解决办法]
探讨
引用:
因为你的 A 触发了 B (A表有个触发器 aa 用来将新插入的数据处理后放入B表)
,B又触发了 C,(B表中也有个触发器 bb 用来将新插入的数据处理后放入C表)
然后C 又去操作A。(并删除A表中)
形成的循环。



就是因为循环..

热点排行