制約

2012-11-06 19 views
55

を変更する方法SQLは、私は上記の制約に制約

ON DELETE CASCADE 

に追加したい私の制約の1

CONSTRAINT ACTIVEPROG_FKEY1 FOREIGN KEY(ActiveProgCode) REFERENCES PROGRAM(ActiveProgCode), 

です。

私が制約ACTIVEPROG_FKEY1を既存のACTIVEPROG_FKEY1

を制約する

ON DELETE CASCADE 

を追加するACTIVEPROG_FKEY1が表ACTIVEPROGで我々は制約を変更することはできません

答えて

86

あなたは今までに制約を変更することはできませんが、あなたはそれらをドロップしてから再作成することができます。

てきたが、この

ALTER TABLE your_table DROP CONSTRAINT ACTIVEPROG_FKEY1; 

に見て、それがどのようなOPが望んでいることは不可能であることは事実だが、なぜやるON DELETE CASCADE

ALTER TABLE your_table 
add CONSTRAINT ACTIVEPROG_FKEY1 FOREIGN KEY(ActiveProgCode) REFERENCES PROGRAM(ActiveProgCode) 
    ON DELETE CASCADE; 

このような希望を、このヘルプ

+0

制約を有効/無効にすることができます。 –

+0

@FlorinGhita、はい我々は有効/無効にすることができます...............テーブル上で1つまたは複数の制約を無効にし、重要なことをしてから、再度constaintを有効にすると便利ですあなたが終わった後に)。これは、大量ロード操作中のパフォーマンスを向上させるために最もよく行われます。 – andy

6

いいえ、私たちができる唯一のものです考えてみましょうことをどのように変えますかdoは落として再作成します

ALTER TABLE [TABLENAME] DROP CONSTRAINT [CONSTRAINTNAME] 

外部キー制約

Alter Table Table1 Add Constraint [CONSTRAINTNAME] Foreign Key (Column) References Table2 (Column) On Update Cascade On Delete Cascade 

主キー制約

Alter Table Table add constraint [Primary Key] Primary key(Column1,Column2,.....) 
+5

でそれを再作成Oracleにタグ付けされた質問のSQL Serverサイトへのリンクを投稿しますか? –