我有一些表需要在postgresql中级联更新,但我认为我不能使用外键来执行此操作。
简单版本是我有4个对象表和2个绑定表:
Table X Table A Table A-B Table B Table B-C Table C
------- -------- --------- ------- --------- -------
x_id a_id x_id b_id x_id c_id
... ... a_id ... b_id ...
... ... b_id ... c_id ...
... ...
在我的搭售表上,我在所有id字段(x_id,a_id,b_id),(x_id,b_id,c_id)上都有PK。
如果我更新表A-B中的b_id,我希望它更新表B-C中的b_id,其中x_id匹配。
如果我尝试创建外键约束,它会告诉我
“没有唯一约束匹配给定引用表的键......”
我知道它不是这样做的,因为(x_id,b_id)不是唯一约束,但它不能,因为我将有多个c_id具有相同的b_id和x_id。
希望这是有道理的。
使用触发器执行此操作的唯一方法是什么?
答案 0 :(得分:1)
我知道它没有这样做,因为(x_id,b_id)不是 唯一约束,但它不能,因为我将有多个c_id 使用相同的b_id和x_id。
为了更新表A-B级联到表B-C中的b_id,您需要
我不清楚你的当前结构是否可行。
如果