DROP TABLEコマンド: ハイブリッドテーブルのCASCADEの動作に対する変更(保留中)。¶
この動作変更バンドルが有効な場合、CASCADE/RESTRICTパラメーターのデフォルト設定は、 ハイブリッドテーブル で異なります。この変更は標準テーブルには適用されません。
- 変更前:
RESTRICTまたはCASCADEを指定せずにハイブリッドテーブルをドロップし、そのハイブリッドテーブルが別のテーブルとプライマリキー/外部キーまたは固有のキー/外部キーの関係にある場合はDROP TABLEコマンドが成功します。
デフォルトの動作はCASCADEです。
CREATE OR REPLACE HYBRID TABLE ht1( col1 NUMBER(38,0) NOT NULL, col2 NUMBER(38,0) NOT NULL, CONSTRAINT pkey_ht1 PRIMARY KEY (col1, col2)); CREATE OR REPLACE HYBRID TABLE ht2( cola NUMBER(38,0) NOT NULL, colb NUMBER(38,0) NOT NULL, colc NUMBER(38,0) NOT NULL, CONSTRAINT pkey_ht2 PRIMARY KEY (cola), CONSTRAINT fkey_ht1 FOREIGN KEY (colb, colc) REFERENCES ht1(col1,col2)); DROP TABLE ht1;
DROP TABLEコマンドが成功し、エラーは出力されません。
- 変更後:
RESTRICTまたはCASCADEオプションを指定せずにハイブリッドテーブルをドロップし、そのハイブリッドテーブルが別のテーブルとプライマリキー/外部キーまたは固有のキー/外部キーの関係にある場合はDROP TABLEコマンドは失敗し、エラーが出力されます。
デフォルトの動作はRESTRICTです。
例:
DROP TABLE ht1;
SQL compilation error: Cannot drop the table because of dependencies
この場合、DROP TABLEコマンドは失敗します。必要に応じて、DROP TABLEコマンドでCASCADEを指定するとデフォルトの動作を無効にできます。
DROP TABLE ht1 CASCADE;
その代わり、この場合にはまず依存しているテーブル
ht2
を削除してからテーブルht1
をドロップします。
Ref: 1741