Partage
  • Partager sur Facebook
  • Partager sur Twitter

LOAD DATA INFILE

    4 septembre 2010 à 11:21:20

    Bonjour,

    J'ai une table MySql du style :

    id_livre (clé primaire)
    titre
    id_categorie

    dans laquelle des données sont déjà enregistrées.

    Par la suite j'ai ajouté un nouveau champ (id_format) en fin de table (grâce à PhpMyadmin). Disposant des données id_format dans un fichier .txt du style :

    1
    3
    5
    1
    1
    etc

    j'ai voulu utiliser LOAD DATA INFILE pour alimenter mon nouveau champ avec les données de mon fichier .txt :

    LOAD DATA INFILE '***.txt' INTO TABLE livre (id_format)
     
        LINES TERMINATED BY '\r\n'
    ;
    


    Mais j'ai l'erreur suivante : #1062 - Duplicate entry '0' for key 'PRIMARY'

    Mon champ id_format n'est pourtant pas la clé primaire (c'est le champ id_livre). A noter que suite à cette erreur, mon champ id_format se remplit de 0 à chaque enregistrement et un nouvel enregistrement est crée avec des valeurs à 0.

    Voyez-vous comment procéder pour alimenter mon nouveau champ correctement ? Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      7 septembre 2010 à 10:34:08

      Salut,

      Je ne suis pas sur mais je pense qu'il faut passer ton champs id_livre en auto incrément
      • Partager sur Facebook
      • Partager sur Twitter
        7 septembre 2010 à 18:00:44

        bonjour,
        après quelques tests, avec diverses options, LOAD DATA INFILE insère dans la base de données.
        Même si la syntaxe officielle, http://dev.mysql.com/doc/refman/5.1/en/load-data.html, laisse penser que l'on pourrait faire un UPDATE avec les options REPLACE et SET.
        Je ne suis pas allé plus loin dans mes tests.
        Donc une autre solution, plus lourde au niveau du codage et de la rapidité, est de faire une lecture de fichier et une série de UPADTE.
        Ce n'est peut-être pas la meilleure solution mais en attendant mieux elle tourne :)
        Bon courage et attendons la solution optimale.
        • Partager sur Facebook
        • Partager sur Twitter

        LOAD DATA INFILE

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown