Partage
  • Partager sur Facebook
  • Partager sur Twitter

Incorrect integer value: ' ' for column ' '

    16 mars 2022 à 7:27:51

    Bonjour,

    J'essaie d'insérer des données dans une base de données à partir d'un fichier CSV.

    Voici le fichier : 

    -----------------

    "g_id";"g_libelle"

    ;Couple

    ;Seule

    -------------------

    Ma colonne g_id est en AUTO_INCREMENT

    Mais voici l'erreur qui s'affiche : #1366 - Incorrect integer value: 'g_id' for column 'g_id' at row 1

    Pourquoi y a t il un soucis d'integer ? faut il absolument ajouter un id ?

    j'ai essayé également de l'enlevé comme ceci : 

    -----------------

    "g_libelle"

    Couple

    Seule

    -------------------

    Mais j'ai l'erreur : Invalid column count in CSV input on line 1.

    Je ne comprends pas pourquoi il y a des erreurs j'ai pourtant bien ajouter le point-virgule pour la séparation des colonnes.

    Est-ce que quelqu'un comprends svp ?

    -
    Edité par PicardSylvain 16 mars 2022 à 7:31:17

    • Partager sur Facebook
    • Partager sur Twitter

    S.PICARD

      16 mars 2022 à 10:11:25

      Bonjour,

      Je suppose que la colonne en auto-incrément est aussi clé primaire de la table en question.

      MySQL attend un entier. Une chaîne vide n'est pas acceptable.

      Si tu travaillais en SQL (sans import CSV) tu ferais ceci :

      INSERT INTO table_g ( g_id, g_libelle )
      VALUES ( NULL, 'Couple' ), ( NULL, 'Seule' );

      Ou bien :

      INSERT INTO table_g ( g_libelle )
      VALUES ( 'Couple' ), ( 'Seule' );

      Soit tu laisses tes 2 colonnes dans ton CSV et tu mets NULL dans g_id, soit tu ne mets dans ton CSV qu'une seule colonne g_libelle mais dans ta commande LOAD DATA tu précises les colonnes du CSV : MySQL 8.0 Reference Manual :: 13.2.7 LOAD DATA Statement

      -
      Edité par Benzouye 16 mars 2022 à 10:11:40

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        21 mars 2022 à 14:23:04

        Je pense que le 1er message d'erreur indique qu'on essaie de convertir le nom de la coonne g_id en entier pour la colonne autoincrémenté. donc qu'on a oublié de signaler que le fichier csv a des entêtes qui sont les noms des colonnes.
        Le second message indique qu'il n'y a qu'une colonne dans ton fichier csv (ce qui est effectivement le cas) alors qu'il en attend d'autres.
        Question subsidiaire: comment tu fais l'import dans la base avec ton fichier csv ?
        • Partager sur Facebook
        • Partager sur Twitter
          21 mars 2022 à 17:17:03

          J'importe le fichier CSV avec l'assistant sur ma table
          • Partager sur Facebook
          • Partager sur Twitter

          S.PICARD

            21 mars 2022 à 17:26:10

            Quel assistant ?

            Nous ne sommes pas devins ... Il faut que tu précises plus la façon dont tu travailles ...

            • Partager sur Facebook
            • Partager sur Twitter
            Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
              21 mars 2022 à 18:05:25

              Je pense qu'il doit y avoir quelque part sur cet assistant une case à cocher de style 'mon fichier comprend une ligne d'entête"
              En mettant une capture écran de la fenêtre de l'assistant, ça sera aussi plus simple pour nous

              -
              Edité par umfred 21 mars 2022 à 18:06:44

              • Partager sur Facebook
              • Partager sur Twitter
                22 mars 2022 à 4:53:11

                Je pense que je vais lire la doc pour importer via LOAD DATA mais Voici l'assistant : 

                -
                Edité par PicardSylvain 22 mars 2022 à 5:13:06

                • Partager sur Facebook
                • Partager sur Twitter

                S.PICARD

                  22 mars 2022 à 9:50:56

                  Ca serait moi, je testerai avec "skip this number of queries" à 1.

                  La formulation n'est pas très claire (*), mais il est possible que ça dise d'ignorer la ligne d'entête.

                  Si le champ g_id est numérique, il va peut être y avoir un problème quand il est absent. Ca dépend aussi de la déclaration de la table.

                  (*) ça devrait être "skip this number of rows/lines". Y a pas de "queries" dans un fichier CSV.

                  -
                  Edité par michelbillaud 22 mars 2022 à 9:56:12

                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 mars 2022 à 10:38:55

                    Il s'agit visiblement de PHPMyAdmin.

                    Dans ce cas, lorsque tu choisis le format CSV, tu as des options complémentaires, et notamment une pour échapper la première ligne :

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL

                    Incorrect integer value: ' ' for column ' '

                    × 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