Lors de l'insertion de nouveaux enregistrements dans une base de données MySQL avec un champ unique, il est courant de rencontrer l'erreur « entrée en double ». Pour gérer efficacement de telles erreurs, il existe plusieurs approches :
La syntaxe INSERT ... IGNORE peut être utilisée pour éviter toute erreur lors de la tentative d'insertion d'un enregistrement en double. L'insertion sera ignorée sans aucun message d'erreur.
Contrairement à INSERT IGNORE, REPLACE INTO supprime tout enregistrement existant avec la même clé primaire avant d'en insérer un nouveau. Cela garantit que la table ne contient qu'un seul enregistrement par clé unique.
Cette syntaxe vous permet d'effectuer une mise à jour sur l'enregistrement existant au lieu d'insérer un nouveau un. Cela peut être utile pour les scénarios dans lesquels vous souhaitez mettre à jour des valeurs de colonnes spécifiques tout en préservant les données existantes.
Considérez une table tbl avec deux colonnes, id et value. Supposons que nous ayons un seul enregistrement avec id=1 et value=1.
REPLACE INTO :
REPLACE INTO tbl (id, value) VALUES (1, 50);
Cela entraînera un seul enregistrement avec id=1 et value=50.
INSÉRER IGNORER :
INSERT IGNORE INTO tbl (id, value) VALUES (1, 10);
Aucune action ne peut être effectuée car il existe déjà un enregistrement avec l'id=1.
INSÉRER... SUR LA CLÉ EN DOUBLE MISE À JOUR :
INSERT INTO tbl (id, value) VALUES (1, 200) ON DUPLICATE KEY UPDATE value=200;
Cela mettra à jour l'enregistrement existant avec id=1 pour avoir une valeur=200.
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!