级联更新所有外键,而无需实际更改主键

时间:2019-07-05 02:01:08

标签: postgresql foreign-keys cascade

我需要设计一种方法,使人们邀请现有用户(属于组织A)加入组织B,然后继续进行设置,以设置他们接受邀请后将对组织B拥有的权限。权限被实现为来自各个表的用户ID的外键。

我的想法是创建一个具有不同ID的“代理”用户,人们可以将权限授予代理用户。然后,当真实用户接受邀请时,我会将所有外键从代理用户ID更新为真实用户ID。

我希望我可以UPDATE "Users" SET id = :realUserId WHERE id = :proxyUserId来利用我所有ON UPDATE CASCADE约束中的FOREIGN KEY子句。但这显然会导致主键冲突,因为:realUserId已经存在。

我不认为有任何合理的方法可以使Postgres对所有具有Users外键的表进行级联更新,而无需自行更新Users

0 个答案:

没有答案