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