Détermination de l'impact de ALTER IGNORE TABLE ADD UNIQUE sur les enregistrements en double
Lorsque vous tentez d'ajouter une contrainte UNIQUE sur plusieurs colonnes à une table, il est inévitable de rencontrer des enregistrements en double qui violent cette contrainte. Dans les versions antérieures de MySQL, la clause IGNORE de l'instruction ALTER TABLE jouait un rôle crucial dans la gestion de ces doublons.
MySQL 5.7.4 et au-delà : clause IGNORE supprimée
Cependant, depuis MySQL 5.7.4, la clause IGNORE est obsolète et son utilisation entraîne désormais une erreur. Par conséquent, l'ancien comportement décrit ci-dessous n'est plus applicable.
Comportement dans les anciennes versions de MySQL
Pour les anciennes versions de MySQL qui prennent en charge la clause IGNORE, le comportement suivant se produit lorsque ajout d'une contrainte UNIQUE :
Dans l'exemple fourni, où une contrainte UNIQUE est ajoutée (type, propriétaire) à une table contenant des enregistrements en double avec type = 'Apple' et propriétaire = 'Apple CO', l'enregistrement avec le ID le plus petit serait celui conservé. Les autres enregistrements ayant les mêmes valeurs seraient supprimés.
Cependant, il est important de noter que ce comportement est spécifique aux versions MySQL antérieures à 5.7.4. Dans les versions MySQL modernes, la clause IGNORE n'est plus prise en charge et tous les enregistrements en conflit entraîneront l'échec de l'opération ALTER TABLE.
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!