データベースの制約を変更しているので、それらのいくつかを削除する必要があります。単一の制約の場合、コマンドは次のとおりです。
ALTER TABLE tblApplication DROP CONSTRAINT constraint1_name;
しかし、私がしようとすると
ALTER TABLE tblApplication DROP (
CONSTRAINT constraint1_name,
CONSTRAINT constraint2_name,
CONSTRAINT constraint3_name
);
それは機能せず、私はする必要があります:
ALTER TABLE tblApplication DROP CONSTRAINT constraint1_name;
ALTER TABLE tblApplication DROP CONSTRAINT constraint2_name;
ALTER TABLE tblApplication DROP CONSTRAINT constraint3_name;
1つのコマンドで複数の制約を削除する方法はありますか? ADD
コマンドの場合と同様に、ALTER TABLE tblApplication
を繰り返さないようにしたいと思います。
ALTER TABLE tblApplication ADD (
CONSTRAINT contraint1_name FOREIGN KEY ... ENABLE,
CONSTRAINT contraint2_name FOREIGN KEY ... ENABLE,
CONSTRAINT contraint3_name FOREIGN KEY ... ENABLE
);
はい、できます。制約ごとに「ドロップ制約」を繰り返す必要があります。例えば.
alter table t1
drop constraint fk1
drop constraint fk2
/
編集:これをOracle 11に対してテストしましたが、正常に機能しました。古いバージョンについてはわかりません。
テーブル内の列に関連する制約を削除し、CASCADEを使用して列を削除する別の形式があります。
ALTER TABLE table1 DROP (columnName) CASCADE CONSTRAINTS;
Oracle11gでテストされています