Commande DROP TABLE : Modifications du comportement CASCADE pour les tables hybrides (en attente)¶
Attention
Ce changement de comportement fait partie du bundle 2025_03.
Pour connaître le statut actuel du bundle, reportez-vous à Historique du bundle.
Lorsque ce bundle de changements de comportement est activé, le paramètre CASCADE/RESTRICT est défini par défaut différemment pour les tables hybrides. Cette modification ne s’applique pas aux tables standard.
- Avant la modification:
Lorsque vous supprimez une table hybride sans spécifier RESTRICT ou CASCADE, et que la table hybride a une relation clé primaire/clé étrangère ou clé unique/clé étrangère avec une autre table, la commande DROP TABLE réussit.
Le comportement par défaut est 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;
La commande DROP TABLE est exécutée sans erreur.
- Après la modification:
Lorsque vous supprimez une table hybride sans spécifier l’option RESTRICT ou CASCADE, et que la table hybride a une relation clé primaire/clé étrangère ou clé unique/clé étrangère avec une autre table, la commande DROP TABLE échoue avec une erreur.
Le comportement par défaut est RESTRICT.
Par exemple :
DROP TABLE ht1;
SQL compilation error: Cannot drop the table because of dependencies
La commande DROP TABLE échoue dans ce cas. Si nécessaire, vous pouvez ignorer le comportement par défaut en spécifiant CASCADE dans la commande DROP TABLE.
DROP TABLE ht1 CASCADE;
Dans ce cas, vous pouvez également supprimer la table dépendante
ht2
en premier lieu, puis la tableht1
.
Réf : 1741