C'est ce que je fais en ce moment (name
est UNIQUE
):prépondérants valeurs indexées uniques
SELECT * FROM fruits WHERE name='apple';
Vérifiez si la requête a retourné aucun résultat . Si oui, ne faites rien. Si non, doit être inséré une nouvelle valeur:
INSERT INTO fruits (name) VALUES ('apple');
Au lieu de ce qui précède est-il correct d'insérer la valeur dans la table sans vérifier si elle existe déjà? Si le nom existe déjà dans la table, une erreur sera générée et si ce n'est pas le cas, un nouvel enregistrement sera inséré.
À l'heure actuelle, je dois insérer 500 enregistrements dans une boucle for, ce qui donne 1000 requêtes. Est-ce que ce sera ok d'ignorer le contrôle "déjà existant"?
La seconde méthode n'est * pas * préférée car OP souhaite qu'une entrée en double soit ignorée, et non mise à jour. – BoltClock
ouais mais il peut facilement être mis à jour pour lui-même comme set 'apple' =' apple' – Gunjan