MySQL : ALTER IGNORE TABLE ADD UNIQUE - Implications de la troncature d'enregistrement
Une instruction ALTER TABLE avec la clause IGNORE est utilisée pour ajouter une contrainte unique à une table, supprimant potentiellement les enregistrements en double. Cependant, le ou les enregistrements spécifiques conservés peuvent soulever des questions.
Question :
Lors de l'exécution de l'instruction suivante :
ALTER IGNORE TABLE `my_table` ADD UNIQUE (`type`, `owner`);
Quel enregistrement sera conservé s'il existe plusieurs enregistrements en double avec le même type et les mêmes valeurs de propriétaire ?
Réponse :
Depuis MySQL 5.7.4, la clause IGNORE n'est plus pris en charge et son utilisation entraînera une erreur.
Cependant, dans les versions antérieures de MySQL qui autorisent la clause IGNORE :
Selon la documentation MySQL, « premier » fait probablement référence à l'enregistrement avec la valeur de clé primaire la plus basse. Dans votre cas, en supposant que la colonne ID soit la clé primaire, l'enregistrement avec le plus petit ID sera celui conservé.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!