IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Data too long for column


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 242
    Par défaut Data too long for column
    Bonjour,

    j'ai un soucis avec une requête SQL
    Voilà la structure de ma table :
    CREATE TABLE `forme_compo` (
    `ID_LibFCompo` smallint(4) unsigned NOT NULL auto_increment,
    `ID_FCompo` smallint(4) unsigned NOT NULL,
    `Lib` varchar(255) NOT NULL,
    `Code_FCompo` char(5) NOT NULL default 'zz',
    `Comment_FCompo` text NOT NULL,
    `Code_Langue` char(3) NOT NULL default 'fre',
    PRIMARY KEY (`ID_LibFCompo`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Forme musicale de l''oeuvre pour la musique et les partitions' AUTO_INCREMENT=3 ;
    Je fais l'insertion d'une ligne avec phpmyadmin qui me retourne cette requête et cette erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO `forme_compo` ( `ID_LibFCompo` , `ID_FCompo` , `Lib` , `Code_FCompo` , `Comment_FCompo` , `Code_Langue` )
    VALUES (
    NULL , '156', 'Cotillon', 'ctl', 'A utiliser aussi pour \'contredanse française\'', 'fre'
    )
    MySQL a répondu:Documentation
    #1406 - Data too long for column 'Comment_FCompo' at row 1
    Pouvez-vous m'aider, je ne comprend pas du tout ce qu'il ce passe !!!!

    Merci d'avance

  2. #2
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Je viens de créer la table et d'y insérer les données en faisant des copier-coller de tes 2 requêtes et chez moi cela fonctionne très bien. C'est étrange, j'utilise EasyPHP 1.8 et toi?


    Jasmine,

  3. #3
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 291
    Par défaut
    essaie avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO `forme_compo` ( `ID_LibFCompo` , `ID_FCompo` , `Lib` , `Code_FCompo` , `Comment_FCompo` , `Code_Langue` )
    VALUES (
    NULL , '158', 'Cotillon', 'ctl', 'A utiliser aussi pour ''contredanse française''', 'fre'
    ) ;

  4. #4
    Membre éclairé
    Inscrit en
    Juin 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 242
    Par défaut
    Merci de vos réponse,

    J'ai mysql 5 et quand je passe la requête en ligne de commande c'est pareil. Après plusieurs test il me semble que c'est le "ç" qu'il n'aime pas ce que je ne comprend pas du tout.
    J'ai essayé de recréer la table dans un autre base de ce serveur et c'est pareil. Par contre si je fais le test avec le même table créer mais sur un autre serveur mysql 4 l'enregistrement ce fait normalement.

    J'ai regarder dans mon fichier my.ini et le langage par défaut est le latin dans les 2 je ne comprends pas du tout ce qui pourrait empêcher l'enregistrement d'un "ç" ou de caractère avec accent.
    Merci de votre aide

  5. #5
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 291
    Par défaut
    La question est de savoir quel est le jeu de caractères de ton client :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select @@character_set_client ;
    Si par exemple tu es en UTF8, teste ta requête ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO `forme_compo` ( `ID_LibFCompo` , `ID_FCompo` , `Lib` , `Code_FCompo` , `Comment_FCompo` , `Code_Langue` )
    VALUES (
    NULL , '158', 'Cotillon', 'ctl', _utf8'A utiliser aussi pour ''contredanse française''', 'fre'
    ) ;

  6. #6
    Membre éclairé
    Inscrit en
    Juin 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 242
    Par défaut
    ok alors contre toute attente, la réponse à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT @@character_set_client ;
    est utf_8. Je ne comprend pas pouquoi dans la mesure où dans my.ini j'ai latin1 de déclarer et que ma base comme l'ensemble de mes tables sont déclarés en "latin1_swedish_ci"

    D'où vient cet utf8 et surtout comment faire pour le passer en Latin 1?

    Sinon, j'ai passé la requête indiquée et j'ai toujours le même message d'erreur

  7. #7
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    bonjour,

    il y a un truc que je ne comprends pas dans ta requête
    tu déclare ton champs:
    ID_LibFCompo` smallint(4) unsigned NOT NULL auto_increment
    et tu lui passes NULL comme valeur
    Si ton champs est en auto_increment, tu n'as pas a lui passer de valeur, il va la prendre tout seul
    Ca peu peut être, être la cause de ton problème. Mysql qui se mélange les pinceaux au niveau des colonnes. Essaie ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
     
    INSERT INTO `forme_compo` ( `ID_FCompo` , `Lib` , `Code_FCompo` , `Comment_FCompo` , `Code_Langue` )
    VALUES (
    '158', 'Cotillon', 'ctl', 'A utiliser aussi pour ''contredanse française''', 'fre'
    ) ;

  8. #8
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 291
    Par défaut
    Citation Envoyé par epeichette Voir le message
    ok alors contre toute attente, la réponse à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT @@character_set_client ;
    est utf_8. Je ne comprend pas pouquoi dans la mesure où dans my.ini j'ai latin1 de déclarer et que ma base comme l'ensemble de mes tables sont déclarés en "latin1_swedish_ci"
    ça n'a rien à voir. @@character_set_client ne dépend que du client que tu utilises. MySQL QB et Toad for MySQL, par exemple, sont toujours en utf8.

    Citation Envoyé par epeichette Voir le message
    D'où vient cet utf8 et surtout comment faire pour le passer en Latin 1?
    Quel est donc ton client ?
    Citation Envoyé par epeichette Voir le message
    Sinon, j'ai passé la requête indiquée et j'ai toujours le même message d'erreur
    Remplace le ç par un c, histoire d'être sûr que le problème soit là.

Discussions similaires

  1. erreur : Data too long for column
    Par GLSpirit dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 25/10/2007, 15h30
  2. Erreur Data too long For column
    Par fabrice.77 dans le forum Débuter
    Réponses: 12
    Dernier message: 12/02/2007, 09h19
  3. [NWNX ODBC2 plugin] Data too long for column ..
    Par ballestolive dans le forum Débuter
    Réponses: 1
    Dernier message: 31/10/2006, 15h01
  4. ERROR 1406 (22001): Data too long for column
    Par olive_le_malin dans le forum Requêtes
    Réponses: 6
    Dernier message: 12/06/2006, 14h27
  5. "Data truncation: Data too long for column"
    Par bibiloute dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 04/05/2006, 09h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo