删除表时的正确引用顺序

时间:2015-03-04 07:35:32

标签: sql database oracle

我刚看过这个:

  

DROP TABLE命令必须采用正确的引用顺序

这是否意味着如果我在数据库中有表:TABLE1,TABLE2,TABLE3, 然后我不能编写一个脚本,我将按顺序删除表:DROP TABLE2,DROP TABLE3,DROP TABLE1,但我必须遵循模式1,2,3 ??

1 个答案:

答案 0 :(得分:3)

您可以发布此报价来源的链接吗?

我认为,他们的意思是表之间的引用的核心顺序,例如外键。您不能只删除表,而另一个表具有foregin键引用已删除表中列的列。

因此,如果我们将表A与主键A.id和表B与pk B.id和foreigin键B.id_A引用A.id,表C与pk C.id和外键C.id_B引用B.id,正确的参考顺序应该是:

DROP C;
DROP B;
DROP A;

当然,你在oracle中有其他选项,例如cascade constrains。在Postgres中你可以使用defer constrains。我不确定MSSQL服务器选项。