Database
 sql >> Base de données >  >> RDS >> Database

Comment supprimer une contrainte de clé étrangère dans SQL

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 .