Destruction des contraintes¶
Les contraintes sont détruites à l’aide des commandes ALTER TABLE suivantes :
ALTER TABLE … DROP CONSTRAINT supprime explicitement la contrainte spécifiée. Comme pour la modification des contraintes, vous pouvez identifier la contrainte à l’aide de son nom ou de la définition de colonne, ainsi que du type de contrainte. Pour une clé primaire, la contrainte peut également être identifiée à l’aide du mot-clé PRIMARY KEY.
ALTER TABLE … DROP COLUMN détruit une colonne et ses contraintes associées.
Par défaut, lorsqu’une clé primaire ou unique est détruite, toutes les clés étrangères faisant référence à la clé détruite sont également détruites, sauf si l’option de destruction RESTRICT est spécifiée.
Les contraintes sont également détruites lorsque les tables, schémas ou bases de données associés sont détruits. Les commandes DROP prennent en charge les options de destruction CASCADE | RESTRICT.
Note
Vous pouvez restaurer les tables, schémas et bases de données détruits à l’aide de la commande UNDROP ; les colonnes et contraintes détruites ne peuvent être restaurées.
Destruction des contraintes¶
Vous pouvez explicitement détruire les contraintes UNIQUE,PRIMARY KEY,FOREIGN KEY et CHECK à l’aide de la commande ALTER TABLE … DROP CONSTRAINT :
Pour ces contraintes, en cas de destruction d’une contrainte FOREIGN KEY ou d’une contrainte de clé primaire ou unique sans référence de clé étrangère, les contraintes sont directement détruites.
L’option de destruction par défaut est CASCADE, ce qui signifie que la destruction d’une clé unique ou primaire avec des références de clés étrangères entraîne la destruction de toutes les clés étrangères de référence ainsi que de la clé unique ou primaire.
Si l’option de destruction RESTRICT est spécifiée, lors de la destruction d’une clé primaire ou unique, une erreur est renvoyée s’il existe des clés étrangères qui font référence aux clés détruites.
Supprimer des colonnes¶
La suppression de colonnes à l’aide de ALTER TABLE … DROP COLUMN se comporte de la même manière que la suppression des contraintes :
Pour les contraintes PRIMARY KEY, UNIQUE et FOREIGN KEY, l’option de destruction par défaut est CASCADE, ce qui signifie que toute contrainte qui contient la colonne à détruire est également détruite. Si une clé primaire ou unique impliquant la colonne est référencée par d’autres contraintes FOREIGN KEY, toutes les clés étrangères de référence sont détruites. En cas de spécification de l’option RESTRICT, une erreur est renvoyée si la colonne contient des clés primaires ou uniques avec des références de clés étrangères. La commande de destruction n’aboutit que s’il n’y a aucune contrainte définie sur la colonne à détruire ou y faisant référence.
Pour les contraintes CHECK qui font référence à une seule colonne, l’option de destruction par défaut est CASCADE. Cependant, pour les contraintes CHECK qui font référence à plusieurs colonnes, l’option de destruction par défaut estRESTRICT. Celle-ci empêche la suppression accidentelle des contraintes qui pourraient être nécessaires à l’intégrité des données.
Destruction de tables, de schémas et de bases de données¶
La commande DROP détruit la table, le schéma ou la base de données spécifiés et peut également être spécifiée pour détruire toutes les contraintes associées à l’objet :
Comme pour la destruction de colonnes et de contraintes, CASCADE est l’option de destruction par défaut, et toutes les contraintes qui appartiennent ou font référence à l’objet à détruire sont également détruites.
Par exemple, lors de la destruction d’une base de données, si cette dernière contient une clé primaire ou unique référencée par la clé étrangère d’une autre base de données, les clés étrangères de référence sont également détruites.
Si l’objet est par la suite restauré, toutes les contraintes pertinentes précédemment détruites sont restaurées.
En cas de spécification de l’option RESTRICT, une erreur est renvoyée si des contraintes PRIMARY KEY ou UNIQUE sous l’objet ont des références de clés étrangères.