Maison >base de données >tutoriel mysql >Comment insérer de nouveaux enregistrements dans MySQL tout en gérant les entrées en double ?
Insérer de nouveaux enregistrements en ignorant les entrées en double dans MySQL
En PHP, vous pouvez rencontrer un scénario dans lequel vous devez insérer plusieurs enregistrements dans un base de données avec des champs uniques. Pour garantir que seuls les nouveaux enregistrements sont insérés sans rencontrer d'erreurs de saisie en double, envisagez les approches suivantes :
1. INSERT... IGNORE Syntax
Cette syntaxe permet à MySQL d'ignorer les entrées en double sans générer d'erreurs. Par exemple :
INSERT IGNORE INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
2. Syntaxe REPLACE INTO
Contrairement à INSERT... IGNORE, la syntaxe REPLACE INTO écrase les enregistrements existants avec la même valeur de clé. Cela peut être utile si vous souhaitez mettre à jour les valeurs des enregistrements existants :
REPLACE INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
3. INSERT... ON DUPLICATE KEY UPDATE Syntaxe
Cette syntaxe vous permet de spécifier une instruction de mise à jour à exécuter si une clé en double est rencontrée. Par exemple, pour mettre à jour la valeur d'une colonne dans un enregistrement en double :
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...) ON DUPLICATE KEY UPDATE column2 = newValue;
Exemples
Supposons que vous ayez une table nommée tbl avec l'identifiant et la valeur des colonnes, avec l'enregistrement>
REPLACE INTO
REPLACE INTO tbl VALUES (1, 50);
Cela mettrait à jour l'enregistrement avec>
INSERT IGNORE
INSERT IGNORE INTO tbl VALUES (1, 10);
Cela ignorerait le entrée en double et aucun enregistrement ne serait inséré.
INSÉRER... SUR MISE À JOUR DE LA CLÉ EN DUPLICATE
INSERT INTO tbl VALUES (1, 200) ON DUPLICATE KEY UPDATE value=200;
Cela mettrait à jour l'enregistrement avec>
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!