制約を変更する方法


91

SQL制約を変更する方法

以下は私の制約の1つです

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

追加したい

ON DELETE CASCADE

上記の制約に。

既存の制約ACTIVEPROG_FKEY1を変更して追加する方法

ON DELETE CASCADE

ACTIVEPROG_FKEY1を制約する

ACTIVEPROG_FKEY1がテーブルACTIVEPROGにあることを考慮してください

回答:


144

制約を変更することはできませんが、削除して再作成することはできます。

これを見てください

ALTER TABLE your_table DROP CONSTRAINT ACTIVEPROG_FKEY1;

そして、ON DELETE CASCADEこのようにそれを作り直します

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

この助けを願っています


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

1
@FlorinGhita、はい、有効/無効にできます...............テーブルの1つ以上の制約を無効にし、重要なことを行ってから、制約を再度有効にすると便利な場合があります)完了した後。これは、バルクロード操作中のパフォーマンスを向上させるために最もよく行われます。
アンディ

12

いいえ。制約を変更することはできません。できるのは、それをドロップして再作成することだけです。

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,.....)

6
OPが望むことは不可能であるのは事実ですが、なぜOracleのタグが付けられた質問に対してSQL Serverサイトへのリンクを投稿するのでしょうか。
フランクシュミット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.