我有三张桌子A,B和C。
一个表有列 Aid, Aname
B表有Bid、Aid、Aname、Cid、Cname
C表有Cid,Cname
C表是静态表,有6条记录(以后可能会增加)
要求是当数据插入表 A 时,B 表应使用 Aid 更新,并且所有 Cid 的每一行都具有最大 + 1 的 Bid。
A表每插入一条记录,B表应该插入6条记录(因为C表有6条记录)
这在 MySQL 中使用 Trigger 可行吗?
我有三张桌子A,B和C。
一个表有列 Aid, Aname
B表有Bid、Aid、Aname、Cid、Cname
C表有Cid,Cname
C表是静态表,有6条记录(以后可能会增加)
要求是当数据插入表 A 时,B 表应使用 Aid 更新,并且所有 Cid 的每一行都具有最大 + 1 的 Bid。
A表每插入一条记录,B表应该插入6条记录(因为C表有6条记录)
这在 MySQL 中使用 Trigger 可行吗?
Yes this is possible using a trigger
CREATE TRIGGER b_update_trigger BEFORE INSERT ON b
FOR EACH ROW BEGIN
...
END
however you really shouldn't duplicate data. You should keep AName
in table A
and CName
in table C
.
Then you can join them to get the same result:
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