Parmi les erreurs courantes en MySQL, ont trouve la fameuse ERROR 1062 (23000): Duplicate entry ’2984′ for key ‘PRIMARY’ causée par la tentative d’insertion d’une données, déjà présente, dans un colonne ayant une contrainte d’unicité.
Dans la même famille il y a aussi l’erreur 1022…
Une banale requête de lecture avec un GROUP BY:
mysql> SELECT DISTINCT(name), COUNT(name) FROM membre WHERE name <> » GROUP BY name ERROR 1022 (23000): Can’t write; duplicate key in table ‘/tmp/#sql_29lm_0′
C’est assez surprenant de trouver une telle erreur sur une requête aussi triviale !
En regardant le plan d’exécution, on remarque que outre le fait qu’ un index est plus que recommandé, MySQL créé une table temporaire (/tmp/#sql_29lm_0) et c’est en insérant les données dans cette dernière que le « duplicate key » se …
[Lire plus]