我做了一些SQL更新一些事情,由于某些限制,我不得不:
但是现在我注意到我有一个问题,因为:
当我将A重命名为A_OLD时,它还将对A的任何约束都更改为对A_OLD的约束。
例如 :
CONSTRAINT "FK_A" FOREIGN KEY ("ID_A") REFERENCES "A_OLD" ("ID_A") ENABLE
但是我的A_OLD只是临时的,我该怎么做才能将对A_OLD的任何引用更改为对A的引用?
答案 0 :(得分:2)
您将添加一个“新”约束。
数据库内部不关心事物的名称(很多)。元数据不是使用事物的名称,而是使用对象引用-重命名对象不会更改对象的ID,而只是更改对象的外部名称。因此,重命名表会使所有外键“自动”引用表的新名称-外键约束仍然引用与重命名之前相同的对象ID。如果您现在已经创建了“新”表,并且希望外键引用“新”表,则需要创建一个引用“新”表的新外键。