MySQL中使用带循环的触发器的多个insert语句

MySQL中使用带循环的触发器的多个insert语句,mysql,database-design,triggers,Mysql,Database Design,Triggers,我有三张桌子A、B和C 表中有列辅助,Aname B表有Bid、Aid、Aname、Cid、Cname C表有Cid、Cname C表是静态表,有6条记录(将来可能会增加) 要求是,当数据插入表A时,应使用Aid更新表B,并且所有CID的每一行的最大投标值均为+1 对于表中插入的每个记录,B表中应该插入6条记录(因为C表中有6条记录) 在MySQL中使用触发器可以实现这一点吗?是的,使用触发器可以实现这一点 CREATE TRIGGER b_update_trigger BEFORE INSER

我有三张桌子A、B和C

表中有列辅助,Aname

B表有Bid、Aid、Aname、Cid、Cname

C表有Cid、Cname

C表是静态表,有6条记录(将来可能会增加)

要求是,当数据插入表A时,应使用Aid更新表B,并且所有CID的每一行的最大投标值均为+1

对于表中插入的每个记录,B表中应该插入6条记录(因为C表中有6条记录)


在MySQL中使用触发器可以实现这一点吗?

是的,使用触发器可以实现这一点

CREATE TRIGGER b_update_trigger BEFORE INSERT ON b
FOR EACH ROW BEGIN
  ...
END
但是您确实不应该复制数据。您应该在
表A中保留
AName
,在
表C中保留
CName

然后,您可以加入它们以获得相同的结果:

SELECT b.bid, a.aid, a.aname, c.cid, c.cname FROM b
INNER JOIN a
  ON a.aid = b.aid
INNER JOIN c
  ON c.cid = b.cid

你真的尝试过什么吗?是的,我们得到了一个类似于这里解释的解决方案。