Problème :
Vous souhaitez supprimer une clé étrangère d'une table dans une base de données.
Exemple :
Nous voulons supprimer la clé étrangère nommée fk_student_city_id
du tableau student
.
Solution 1 (nouveau tableau) :
ALTER TABLE student DROP CONSTRAINT fk_student_city_id;
Discussion :
Pour supprimer une clé étrangère d'une table, utilisez la commande ALTER TABLE
clause avec le nom de la table (dans notre exemple, student
) suivi de la clause DROP CONSTRAINT
avec le nom de la contrainte de clé étrangère. Dans notre exemple, le nom de cette contrainte est fk_student_city_id
.
Si la contrainte pour la clé étrangère a été générée par la base de données, vous pouvez trouver ce nom dans la base de données. Cependant, chaque serveur de base de données a une manière différente de nommer les contraintes. Dans SQL Server, vous pouvez le vérifier en sélectionnant les données de sys.key_constraints
dans la base de données donnée. Dans PostgreSQL, vous sélectionnez le conname
colonne de pg_constraint
table. Oracle stocke ces données dans la table user_constraints et MySQL vous permet d'obtenir des noms à partir de CONSTRAINT_NAME
colonne dans information_schema.TABLE_CONSTRAINTS
.