MySQL : ALTER IGNORE TABLE ADD UNIQUE - Quel enregistrement reste ?
Lors de l'utilisation de l'instruction ALTER IGNORE TABLE ADD UNIQUE dans MySQL, il est essentiel pour comprendre son comportement concernant les enregistrements en double avec des valeurs de clé uniques identiques.
Plus précisément, dans les versions MySQL antérieures à 5.7.4, la clause IGNORE permettait de gérer différemment les enregistrements en double. Pour l'opération ALTER TABLE que vous avez fournie :
ALTER IGNORE TABLE `my_table` ADD UNIQUE (`type`, `owner`);
S'il existe des enregistrements avec un type et des valeurs de propriétaire en double, le comportement dépend de l'existence d'une clé primaire.
Avec clé primaire (par exemple, ID AUTO_INCREMENT PRIMARY KEY)
Dans ce cas, l'enregistrement avec le ID le plus petit sera conservé, tandis que tous les autres enregistrements en double avec le même type et les valeurs du propriétaire seront supprimées. La clause IGNORE demande à MySQL d'ignorer tout conflit causé par des valeurs de clé en double.
Sans clé primaire
Si aucune clé primaire n'existe, le comportement exact de ALTER IGNORE TABLE est plus ambigu. Différentes versions de MySQL peuvent gérer cette situation différemment, il est donc généralement recommandé d'éviter d'utiliser IGNORE sans clé primaire.
Dans MySQL 5.7.4 et versions ultérieures
Il est important de notez que la clause IGNORE pour ALTER TABLE a été supprimée à partir de MySQL 5.7.4. Tenter d'utiliser IGNORE dans ces versions entraînera une erreur.
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!