2014-10-28 117 views
1

我有一個子表。並在創建表時使用ON DELETE CASCADE的外鍵。刪除ON DELETE CASCADE

在子表或父表中沒有記錄。

我想要主鍵,外鍵是原樣,但只想從子表中刪除CASCADING選項。

有無論如何,我可以改變這個子表。

謝謝。

回答

1
ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } 

默認值爲NO ACTION。

因此,請嘗試將您的子表更改回默認值。

+0

FID數(5)引用父(PID)不同的字典視圖; 所以我需要發出改變表子修改fid上刪除設置默認.....對嗎? – Raghav 2014-10-28 10:45:40

+0

我正在使用Oracle – Raghav 2014-10-28 10:54:24

0

(Oracle)只能更改約束的狀態。 ON DELETE不是一個狀態。所以你需要放棄約束並重新創建它。

drop table t1 cascade constraints; 
create table t1 (id number unique, rid number constraint t1_fk references t1(id) on delete cascade); 

alter table t1 drop constraint t1_fk; 
alter table t1 add constraint t1_fk foreign key(rid) references t1(id); 

,如果你使用的是Oracle有可能幫助你重新創建約束正確的刪除級聯