DROP TABLEコマンド: ハイブリッドテーブルのCASCADEの動作に対する変更(保留中)。

注意

この動作変更は2025_03バンドルで変更されます。

バンドルの現在のステータスについては、 バンドル履歴 をご参照ください。

この動作変更バンドルが有効な場合、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;
Copy

DROP TABLEコマンドが成功し、エラーは出力されません。

変更後:

RESTRICTまたはCASCADEオプションを指定せずにハイブリッドテーブルをドロップし、そのハイブリッドテーブルが別のテーブルとプライマリキー/外部キーまたは固有のキー/外部キーの関係にある場合はDROP TABLEコマンドは失敗し、エラーが出力されます。

デフォルトの動作はRESTRICTです。

例:

DROP TABLE ht1;
Copy
SQL compilation error:
Cannot drop the table because of dependencies

この場合、DROP TABLEコマンドは失敗します。必要に応じて、DROP TABLEコマンドでCASCADEを指定するとデフォルトの動作を無効にできます。

DROP TABLE ht1 CASCADE;
Copy

その代わり、この場合にはまず依存しているテーブル ht2 を削除してからテーブル ht1 をドロップします。

Ref: 1741