gestion doublons avec LOAD DATA INFILE

Eléphanteau du PHP | 11 Messages

01 juil. 2011, 11:22

Bonjour à tous,

J'importe des données à partir de fichier csv dans ma base de données avec l'outil LOAD DATA INFILE, et j'aimerai savoir s'il y a possibilité d'avoir une gestion plus avancée pour les doublons.
Je m'explique, je sais qu'il y a deux options IGNORE et REPLACE et moi j'utilise IGNORE mais j'aurai aimé pouvoir récupérer les lignes ignorées dans un autre fichier, avec la commande SELECT INTO OUTFILE par exemple, mais je ne sais pas si cela est possible.

Si quelqu'un sait si cela est faisable se serait cool.

Merci par avance.

ViPHP
ViPHP | 2577 Messages

01 juil. 2011, 16:02

Bonjour,

Il n'y a pas des messages d'erreurs que tu peux mettre dans un fichier ?

Autrement, tu peux charger le fichier dans une table intermédiaire et faire des contrôles dans cette table avant de charger dans la table définitive.

Par expérience, il faut contrôler le fichier avant de le charger à moins de le générer soi-même. Les contrôles minimum portent sur les problèmes d'index, d'existence de clés dans d'autre tables et de format des zones (longueur et type). Eventuellement, tu peux aussi contrôler les valeurs. Ceci est valable pour des traitements réguliers.

Souvent on décide de faire ou non le chargement en fonction du ratio nombre d'erreurs/nombre d'enregistrement via un arrêt de traitement.

Eléphanteau du PHP | 11 Messages

06 juil. 2011, 09:24

Oui je pense que je vais faire une étape intermédiaire en comparant l'existant avec ce que j'importe et mettre les doublons dans un fichier tiers.