搜索
mysql - 2个表各自有触发器,当其中一个表更新时,另一个表也会更新,同时会再更新一次前一个表要怎么做?
怪我咯
怪我咯 2017-04-17 13:21:15
[MySQL讨论组]

情景:
当a表插入新数据时,b表也会插入一条信息,统计a表中某信息的次数。
记录后,会重新更新a表的另一信息。

例:
插入a表
a->ID:1 计时器:0秒 引用对象ID:(无引用)
ID:2 计时器:0秒 引用对象ID:(1)
ID:3 计时器:0秒 引用对象ID:(1)
由此触发动作:
插入b表
b->ID:1(被引用对象) times:2(被引用次数)
再次触发:
更新a表
a-> 计时器0 --->计时器2

触发器返回1442错误,应该是2个表之间的动作都会触发trigger。
这个需求要怎么完成?

触发器:

create trigger tri_a before insert on a
for each row 
begin
if a.引用对象ID>0 then
insert into b value (a.ID,1)on duplicate key update times=times+1;
end if;
end;

create trigger tri_b before insert on b
for each row 
begin
update a set a.计时器=b.times where b.ID=a.ID;
end;
怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号