假设我有一个person
带有 id 和其他一些列的表。其他表person
使用ON UPDATE CASCADE
. 例如:
CREATE TABLE person (id int PRIMARY KEY);
CREATE TABLE sale (id int PRIMARY KEY,
person_id int REFERENCES person(id) ON UPDATE CASCADE);
Run Code Online (Sandbox Code Playgroud)
现在,我想要做的是:从 person 表中删除重复的条目,修复referencessale
引用。例如,使用此数据:
INSERT INTO person values (1), (2), (3);
INSERT INTO sale VALUES (11, 1), (12, 2), (13, 3);
Run Code Online (Sandbox Code Playgroud)
Person1
和2
实际上是一样的,所以他们应该被“合并”。通过合并我的意思是不包括人2
在更新的人引用1
的sale
表。
由于ON UPDATE CASCADE
表上有一个引用person,我想知道是否有某种方法可以在不必手动更新sale
表的情况下,在删除人的同时导致级联更新2
我在这里试图实现的是避免使用专用程序来更新引用,因为引用表的数量很可能会增加,需要在此过程中进行维护(并且已经相当大了)。