假设我有一个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
我在这里试图实现的是避免使用专用程序来更新引用,因为引用表的数量很可能会增加,需要在此过程中进行维护(并且已经相当大了)。