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

 MySQL Discussion :

Création d'une table - Problème....


Sujet :

MySQL

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2005
    Messages : 117
    Points : 57
    Points
    57
    Par défaut [Résolu] Création d'une table - Problème....
    Bonsoir à tous, alors voilà mon problème (config : MySQL 4.1.14 et PhpMyAdmin 2.6.4.) :

    Requête SQL:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE TABLE livredor(
    code int( 11 ) DEFAULT '0' NOT NULL AUTO_INCREMENT ,
    date varchar( 20 ) NOT NULL ,
    nom varchar( 50 ) ,
    email varchar( 50 ) ,
    commentaire blob,
    PRIMARY KEY ( code )
    )
    Et voilà la réponse que j'obtiens..... :

    MySQL a réponduocumentation
    #1067 - Invalid default value for 'code'


    Mais je ne vois pas quoi faire, car 11 est bien un entier...

    Je suppose que la solution est simple, mais je suis débutant, désolé d'avance !

    Et merci à tout ceux qui me répondront !

  2. #2
    Membre actif Avatar de Ryan Sheckler
    Homme Profil pro
    Moine
    Inscrit en
    Novembre 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Moine

    Informations forums :
    Inscription : Novembre 2005
    Messages : 196
    Points : 219
    Points
    219
    Par défaut
    Tu as configuré une valeur par défaut à 0 d'une part, tu as considéré l'auto_incrémentation d'autre part : il y a contradiction.

    S'il incrémente pour toi (auto_increment) alors tu ne peux pas lui dire "prend zéro par défaut"[...]

    Par conséquent, ta ligne devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE livredor(
    code int( 11 ) NOT NULL AUTO_INCREMENT ,
    date varchar( 20 ) NOT NULL ,
    nom varchar( 50 ) ,
    email varchar( 50 ) ,
    commentaire blob,
    PRIMARY KEY ( code )
    )
    " Si un jour nocturne et un jour diurne pouvaient nous embrasser tous,
    ce serait le but suprême de tous les désirs. " [Schelling]

  3. #3
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 911
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 911
    Points : 6 032
    Points
    6 032
    Par défaut
    Le message fait référnce à une valeur par défaut invalide, et en effet, '0' désigne une chaine de caractères, parfaitement incompatible avec une colonne de type numérique (int)...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    code int( 11 ) DEFAULT 0 NOT NULL AUTO_INCREMENT ,
    ...
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2005
    Messages : 117
    Points : 57
    Points
    57
    Par défaut
    Merci en effet, comme on dit, "yavé une couille dans le paté"

    Comme je l'avais prédit, la solution etait simple !

    Merci à vous !

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Champ vide
    Bonjour,
    Encore une question qui devrait etre facile à résoudre pour beaucoup mais pas pour moi.
    Avec PHPMyAdmin je crée le table suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     CREATE TABLE `monde`.`Pays` (
    `Nom` VARCHAR( 20 ) NOT NULL ,
    `Capitale` VARCHAR( 20 ) NOT NULL ,
    PRIMARY KEY ( `Nom` )
    ) ENGINE = MYISAM
    Pourquoi puis je entrer un enregistrement vide alors que je spécifie NOT NULL ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO `monde`.`Pays` (`Nom` ,`Capitale`)
    VALUES ('', '');
    Merci
    Fred

  6. #6
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    La chaîne vide '' est une valeur, NULL c'est l'absence de valeur.
    Mais tu aurais du faire un post à part pour ta question, plutôt que de la poser ici.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Merci pour ta réponse, même si je ne comprends pas tout.
    Je me doutais bien que NULL et vide était différent, mais dans ce cas comment insérer un champ NULL ?. Bien que pour moi ça ne présente pas d'intérêt, puisque au contraire je souhaiterais prévenir l'ajout d'un champ VIDE.
    Pour ce qui est du post à part je n'ai pas voulu le faire, j'ai trouvé ça gênant, ça fait "occupez vous de moi", j'ai un probleme.

    Merci encore pour tes conseils.
    Fred

  8. #8
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Citation Envoyé par vancouver Voir le message
    comment insérer un champ NULL ?
    Hé bien jsutement en omettant ce champ dans une requête INSERT, par exemple. S'il n'est pas déclaré NOT NULL dans le schéma et qu'il n'y a pas de valeur par défaut, il 'bénéficiera' d'une absence de valeur donc de NULL
    Citation Envoyé par vancouver Voir le message
    Pour ce qui est du post à part je n'ai pas voulu le faire, j'ai trouvé ça gênant, ça fait "occupez vous de moi", j'ai un probleme.
    C'est pas justement le but d'un forum, ça, venir y demander de l'aide, ou en chercher ?
    Ce qui m'amène aux explications suivantes.
    Pourquoi est-il gênant de multiplier les questions dans un même post ?
    Certains regardent juste les titres, ou bien ne font une recherche que sur les titres et 'Création d'une table...Problème' (c'est déjà pas terrible, s'il avait parlé d'un refus de colonne AUTO_INCREMENT à la création d'une table c'eût été plus parlant, mais là n'est pas le problème), comment deviner qu'on va aussi y parler de la différence entre NULL et une chaîne vide ?
    Si tu avais posté avec un titre du genre 'Pourquoi NULL et '' c'est pas pareil ?', le forum gagnait en qualité, et toi tu y trouvais ton compte, tout pareil.

    Cxu vi same opinias ?
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de création d'une table par procédure
    Par randriano dans le forum Oracle
    Réponses: 3
    Dernier message: 14/04/2008, 12h32
  2. Réponses: 2
    Dernier message: 19/03/2008, 23h43
  3. Réponses: 8
    Dernier message: 06/06/2007, 17h03
  4. Réponses: 4
    Dernier message: 04/06/2007, 11h04
  5. Problème à la création d'une table
    Par romstarr dans le forum Administration
    Réponses: 4
    Dernier message: 19/02/2007, 08h45

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