Maison  >  Article  >  base de données  >  Quel enregistrement est conservé lors de l'utilisation de « ALTER IGNORE TABLE ADD UNIQUE » dans MySQL ?

Quel enregistrement est conservé lors de l'utilisation de « ALTER IGNORE TABLE ADD UNIQUE » dans MySQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-04 02:51:29759parcourir

Which record is preserved when using `ALTER IGNORE TABLE ADD UNIQUE` in MySQL?

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 :

  • Premier enregistrement conservé : Seul le La première ligne du tableau avec la combinaison de touches unique sera conservée.
  • Lignes en double tronquées : Toutes les autres lignes avec la même combinaison de touches unique seront supprimé.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn