Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL - ignorer l'erreur d'insertion :entrée en double

Vous pouvez utiliser INSÉRER... IGNORER syntaxe si vous ne voulez rien faire en cas d'enregistrement en double.

Vous pouvez utiliser REPLACE INTO syntaxe si vous souhaitez remplacer un ancien enregistrement par un nouveau avec la même clé.

Ou, vous pouvez utiliser INSERT... ON DUPLICATE MISE À JOUR DE LA CLÉ syntaxe si vous souhaitez effectuer une mise à jour de l'enregistrement à la place lorsque vous rencontrez un doublon.

Edit :J'ai pensé ajouter quelques exemples.

Exemples

Disons que vous avez une table nommée tbl avec deux colonnes, id et value . Il y a une entrée, id=1 et value=1. Si vous exécutez les instructions suivantes :

REPLACE INTO tbl VALUES(1,50);

Vous avez toujours un enregistrement, avec id=1 value=50. Notez que l'intégralité de l'enregistrement a d'abord été SUPPRIMÉ, puis réinséré. Ensuite :

INSERT IGNORE INTO tbl VALUES (1,10);

L'opération s'exécute avec succès, mais rien n'est inséré. Vous avez toujours id=1 et value=50. Enfin :

INSERT INTO tbl VALUES (1,200) ON DUPLICATE KEY UPDATE value=200;

Vous avez maintenant un seul enregistrement avec id=1 et value=200.