Befehl DROP TABLE: Änderungen an CASCADE-Verhaltensweise bei Hybridtabellen¶
Achtung
Diese Verhaltensänderung ist in Bundle 2025_03 enthalten.
Den aktuellen Status des Bundles finden Sie unter Bundle-Verlauf.
Wenn dieses Bundle zur Verhaltensänderung aktiviert ist, ist die Standardeinstellung des Parameters CASCADE/RESTRICT für die Hybridtabellen und unterschiedlich. Diese Änderung gilt nicht für Standardtabellen.
- Vor der Änderung:
- Wenn Sie eine Hybridtabelle löschen, ohne RESTRICT oder CASCADE anzugeben, und die Hybridtabelle eine Primärschlüssel/Fremdschlüssel- oder Unique-Key/Fremdschlüssel-Beziehung mit einer anderen Tabelle hat, ist der Befehl DROP TABLE erfolgreich. - Das Standardverhalten ist 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; - Der Befehl DROP TABLE wird ohne Fehler ausgeführt. 
- Nach der Änderung:
- Wenn Sie eine Hybridtabelle löschen, ohne die Option RESTRICT oder CASCADE anzugeben, und die Hybridtabelle eine Primärschlüssel/Fremdschlüssel- oder Unique-Key/Fremdschlüssel-Beziehung mit einer anderen Tabelle hat, schlägt der Befehl DROP TABLE mit einem Fehler fehl. - Das Standardverhalten ist RESTRICT. - Beispiel: - DROP TABLE ht1; - SQL compilation error: Cannot drop the table because of dependencies - Der Befehl DROP TABLE schlägt in diesem Fall fehl. Falls erforderlich, können Sie das Standardverhalten außer Kraft setzen, indem Sie CASCADE im Befehl DROP TABLE angeben. - DROP TABLE ht1 CASCADE; - Alternativ könnten Sie in diesem Fall zuerst die abhängige Tabelle - ht2und dann die Tabelle- ht1löschen.
Ref.: 1741