Partie I
SQL de base
74
© Éditions Eyrolles
Clé étrangère
L’option DROP FOREIGN KEY de l’instruction ALTER TABLE permet de supprimer une clé
étrangère d’une table. La syntaxe générale est la suivante :
ALTER TABLE [nomBase].nomTable DROP FOREIGN KEY nomContrainte;
Le nom de la contrainte est celui qui a été déclaré lors de la création de la table, soit lors de sa
modification (dans CREATE TABLE ou ALTER TABLE).
Si la contrainte a été définie sans être nommée, son nom est généré par le moteur InnoDB et
l’instruction SHOW CREATE TABLE [nomBase].nomTable permet de le découvrir.
Détruisons la clé étrangère de la colonne proprio.
ALTER TABLE Avion DROP FOREIGN KEY fk_Avion_comp_Compag;
Clé primaire
L’option DROP PRIMARY KEY de l’instruction ALTER TABLE permet de supprimer une clé
primaire. Dans des versions précédentes de MySQL, si aucune clé primaire n’existait, la
première contrainte UNIQUE disparaissait à la place. Ce n’est plus le cas depuis la version 5.1.
Si la colonne clé primaire à supprimer contient des clés étrangères, il faut d’abord retirer les
contraintes de clé étrangère. Si la clé primaire à supprimer est référencée par des clés étrangères d’autres tables, il faut d’abord ôter les contraintes de clé étrangère de ces autres tables.
Ainsi, pour supprimer la clé primaire de la table Affreter, il faut d’abord enlever les deux
contraintes de clé étrangère concernant des colonnes composant la clé primaire.
ALTER TABLE Affreter DROP FOREIGN KEY fk_Aff_na_Avion;
ALTER TABLE Affreter DROP FOREIGN KEY fk_Aff_comp_Compag;
ALTER TABLE Affreter DROP PRIMARY KEY;
La figure suivante illustre les contraintes qui restent actives : les clés primaires des tables
Compagnie et Avion, et une contrainte de non nullité.
Aucun ordre particulier n’est nécessaire pour supprimer ces trois contraintes, car il n’y a plus
de contrainte référentielle active.
SQL de base
74
© Éditions Eyrolles
Clé étrangère
L’option DROP FOREIGN KEY de l’instruction ALTER TABLE permet de supprimer une clé
étrangère d’une table. La syntaxe générale est la suivante :
ALTER TABLE [nomBase].nomTable DROP FOREIGN KEY nomContrainte;
Le nom de la contrainte est celui qui a été déclaré lors de la création de la table, soit lors de sa
modification (dans CREATE TABLE ou ALTER TABLE).
Si la contrainte a été définie sans être nommée, son nom est généré par le moteur InnoDB et
l’instruction SHOW CREATE TABLE [nomBase].nomTable permet de le découvrir.
Détruisons la clé étrangère de la colonne proprio.
ALTER TABLE Avion DROP FOREIGN KEY fk_Avion_comp_Compag;
Clé primaire
L’option DROP PRIMARY KEY de l’instruction ALTER TABLE permet de supprimer une clé
primaire. Dans des versions précédentes de MySQL, si aucune clé primaire n’existait, la
première contrainte UNIQUE disparaissait à la place. Ce n’est plus le cas depuis la version 5.1.
Si la colonne clé primaire à supprimer contient des clés étrangères, il faut d’abord retirer les
contraintes de clé étrangère. Si la clé primaire à supprimer est référencée par des clés étrangères d’autres tables, il faut d’abord ôter les contraintes de clé étrangère de ces autres tables.
Ainsi, pour supprimer la clé primaire de la table Affreter, il faut d’abord enlever les deux
contraintes de clé étrangère concernant des colonnes composant la clé primaire.
ALTER TABLE Affreter DROP FOREIGN KEY fk_Aff_na_Avion;
ALTER TABLE Affreter DROP FOREIGN KEY fk_Aff_comp_Compag;
ALTER TABLE Affreter DROP PRIMARY KEY;
La figure suivante illustre les contraintes qui restent actives : les clés primaires des tables
Compagnie et Avion, et une contrainte de non nullité.
Aucun ordre particulier n’est nécessaire pour supprimer ces trois contraintes, car il n’y a plus
de contrainte référentielle active.
