web-dev-qa-db-fra.com

MySQL: supprimer une ligne en ignorant la contrainte de clé étrangère

donc je travaille sur quelques tables et il y a des incohérences de données entre elles ... Une ou deux tables ont une contrainte de clé étrangère sur une table particulière (appelez-la table X), mais cette table a plusieurs lignes avec la colonne de clé étrangère .

Ce que je veux faire est de supprimer les lignes dupliquées dans la table X, mais la contrainte de clé étrangère m'empêche de le faire. Existe-t-il un moyen de forcer la suppression des lignes tout en ignorant la contrainte de clé étrangère puisque je sais ce que je fais?

42
Xavier_Ex

SET foreign_key_checks = 0;

Cela empêchera MySQL de vérifier les clés étrangères. Assurez-vous de le remettre à 1 lorsque vous avez terminé.

En outre, vous pouvez toujours supprimer la clé étrangère, puis l'ajouter plus tard si vous souhaitez affecter uniquement une clé singulière

ALTER TABLE tableName DROP FOREIGN KEY fk;

121
Matt Dodge