2009-10-08 46 views
0

例如,假設我有表A.然後,我有表B-Z具有表A的主鍵的外鍵。那麼也許還有一些表對B-Z的主鍵約束中的表有一個外鍵約束。有沒有簡單的方法可以清除表A和所有引用A的表(或引用A的表),而無需從每個表中明確刪除或將ON CASCADE約束添加到每個外鍵?如何清除oracle中大量引用的表?

請注意,這主要用於測試目的,不用於生產。我會放棄整個模式並重新開始,但這對於每個測試都是不可行的(考慮構建模式需要多長時間)。

+0

有沒有理由不能使用CASCADE? – Gandalf 2009-10-08 19:11:59

+0

我不需要將CASCADE添加到每個外鍵嗎?老實說,如果我要採取這種方法,爲什麼我不會從每個表中刪除呢? – 2009-10-08 19:14:25

+0

但是,爲什麼不直接從每個表中刪除呢? – Rob 2009-10-08 19:31:14

回答

1

我認爲最有效的方法是刪除所有的FK,截斷表格,然後重建FK。

+0

儘管如此,他將無法重新創建所有FK,除非子表中的特定行已被修復。我想他只想從子表中刪除一些行。 – Rob 2009-10-08 20:14:01

+0

我的回答是基於「清除表A和所有引用A的表(或引用A的表)」,我認爲這意味着子表應該完全清空爲好。 – dpbradley 2009-10-09 12:36:02