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

SQL Procédural MySQL Discussion :

Probleme avec la numerotation automatique


Sujet :

SQL Procédural MySQL

  1. #1
    Membre du Club
    Inscrit en
    Mars 2003
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2003
    Messages : 88
    Points : 59
    Points
    59
    Par défaut Probleme avec la numerotation automatique
    Bonjour,
    Mon script crée une table Auteur de cette facon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE TABLE `auteur` (
      `idAuteur` int(6) unsigned NOT NULL auto_increment,
      `nom` varchar(50) NOT NULL default '',
      `prenom` varchar(50) default NULL,
      PRIMARY KEY  (`idAuteur`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    Dans mon application C#, je rentre une nouvelle valeur de cette facon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO `auteur` ( `idAuteur` , `nom` , `prenom` ) VALUES ('', '" + txtNomAuteur.Text + "', '" + txtPrenomAuteur.Text + "');
    Mais il me dit que la valeur idAuteur est en dehors des valeurs possibles pour ce champ, normal puisque je ne l'ai pas remplie.
    Mais a quoi sert auto_increment alors ? Je me rapelle qu'en php, quand on ne renseigne pas un champ auto_increment, il prends automatiquement la valeur suivante ...
    Peut-etre que je msuis trompé dans la declaration de ma table non ?

    Merci d'avance !

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Bonjour,

    Dans ton INSERT INTO, enleve complètement le champ idAuteur, étant donné qu'il est en auto increment, tu n'as pas besoin de le préciser.
    K

  3. #3
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut Re: Probleme avec la numerotation automatique
    Ton idAuteur est un INT avec auto_increment, tu n'as pas besoin de mettre quoi que ce soit !

    Ta requête est donc la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO auteur (nom, prenom) VALUES ('" + txtNomAuteur.Text + "', '" + txtPrenomAuteur.Text + "');
    Ca vient d'où cette manie de mettre une valeur "" sur un auto_incrément? C'est la doc Microsoft qui vous dit de faire une telle abomination?
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  4. #4
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut Re: Probleme avec la numerotation automatique
    Citation Envoyé par pcaboche
    Ca vient d'où cette manie de mettre une valeur "" sur un auto_incrément? C'est la doc Microsoft qui vous dit de faire une telle abomination?
    Il me semble que sous SQL-Server il n'y a pas besoin de préciser le champ auto incrémentable non plus.

    Peut-être que c'est un symptôme lié à Oracle ? Avec ses séquences et nextval, j'ai souvent vu écrit des choses comme "seq.nextval" dans les id, alors que l'utilisation d'un trigger est plus adaptée
    K

  5. #5
    Membre du Club
    Inscrit en
    Mars 2003
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2003
    Messages : 88
    Points : 59
    Points
    59
    Par défaut
    Merci a tous !
    effectivement il fallait que j'enleve le champ idAuteur tout simplement ...
    Ca vient de PhpMyAdmin : j'ai fait l'insertion, et il m'a redonné le code sql avec le champ idAuteur => ' '

  6. #6
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Citation Envoyé par Sylk
    Ca vient de PhpMyAdmin
    Merci pour l'info. En effet, tu n'est pas le premier à faire cette erreur et je me demandais d'où elle venait.
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  7. #7
    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
    Je viens de tester cette requête :
    INSERT INTO clients `EAN` VALUES ("123456")
    avec phpMyAdmin 2.6.1-pl3 sur une table qui contient une colonne `code`en auto_increment.
    L'insertion s'opère sans problème.
    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. Probleme avec Le tri automatique
    Par redstoff dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/12/2011, 09h15
  2. Probleme d"envoi mail automatique avec CDO
    Par Galactus13 dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 06/10/2009, 23h21
  3. Probleme avec le lancement automatique des script
    Par death_style dans le forum Administration système
    Réponses: 8
    Dernier message: 19/06/2009, 14h59
  4. probleme de numerotation automatique
    Par bassam0205 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 27/11/2007, 10h35
  5. Réponses: 6
    Dernier message: 09/11/2005, 17h35

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