J'ai un script PHP qui importe un csv dans une base de données MySQL. L'importation fonctionne bien avec cette ligne de code
$query = "insert into $databasetable values("$linemysql");";
Le seul problème, c’est lorsque j’essaie d’importer un autre fichier csv en dupliquant les erreurs de script. Comment puis-je ajuster ce script pour ignorer les doublons s'ils existent?
Réponses:
4 pour la réponse № 1INSERT IGNORE
n'insérera pas une ligne si cela entraînerait une duplication de clé. Cependant, il ignorera également (et ne générera pas d'erreur) d'autres cas, comme essayer d'insérer NULL
dans une colonne avec NOT NULL
contrainte.
Si vous voulez juste ignorer les doublons tout en obtenant d’autres erreurs d’insertion, utilisez INSERT ... ON DUPLICATE KEY UPDATE
au lieu. Cela mettra à jour les lignes avec des clés de duplication, bien que cela entraîne un coût de performance.
2 pour la réponse № 2
Si vous utilisez mysql, essayez:
$query = "insert ignore into $databasetable values("$linemysql");";