我有一个来自以前项目的数据库,我想在另一个项目中使用它,由于安全原因,我需要更新其中一个表的ID。问题是该表被其他表的外键广泛引用:
CREATE TABLE "table_table" (
"id" serial NOT NULL PRIMARY KEY,
"created" timestamp with time zone NOT NULL,
);
CREATE TABLE "table_photo" (
"id" serial NOT NULL PRIMARY KEY,
"table_id" integer NOT NULL REFERENCES "table_table" ("id") DEFERRABLE INITIALLY DEFERRED,
);
现在,如果我更改table_table上的id,则来自table_photo的引用将无法工作。 我可能会使用类似以下的内容来更改这些ID:
UPDATE table_table SET id = id + 15613;
我在某个地方看到过可以使用ON UPDATE CASCADE约束来完成这个操作,但我不太确定如何使用它。
顺便说一下:我正在使用Django ORM。