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 :

[auto_increment] le faire commencer à 0


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut [auto_increment] le faire commencer à 0
    Bonjour,

    par défaut, un auto increment commence à 1.

    J'aimerai le faire commencer à 0.
    Pour ceci, j'ai juste déclaré ma table comme indiqué dans la FAQ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE COMPANYTYPE
    (
    	ID INT UNSIGNED NOT NULL AUTO_INCREMENT=0 UNIQUE,
    	NAME VARCHAR(30),
    	PRIMARY KEY(ID)
    );
    mais celà ne fonctionne pas, il me dit que j'ai une erreur pres de '=0 ...' à la ligne 3.
    Or, j'ai MySQL 5.1, ce qui me parrait assez "récent".
    La FAQ mysql ne précisant pas quelle version il faut pour utiliser auto_increment=n, j'aimerai savoir si je ne me suis pas trompé quelque part.

    Merci d'avance

    F.

  2. #2
    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 : 74
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    La valeur de départ de l'AUTO_INCREMENT est un paramètre de la table et non de la colonne.
    On définit la colonne comme étant de type AUTO_INCREMENT et la valeur de départ de l'AUTO_INCREMENT=n en fin de description de structure avec les index et autres contraintes.
    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)

  3. #3
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Donc si je comprends bien, je devrai déclarer ma table ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE TABLE COMPANYTYPE
    (
    	ID INT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE,
    	NAME VARCHAR(30),
    	PRIMARY KEY(ID),
    	AUTO_INCREMENT=0
    );
    ?

    Si c'est le cas, celà ne fonctionne toujours pas.

    Si ce n'est pas le cas, pourrais tu me poster la déclaration de la table avec l'auto_increment correct s'il te plait ?

    Merci

    Fred

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Selon la doc de MySQL, la syntaxe de CREATE TABLE est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
        [(create_definition,...)]
        [table_options] [select_statement]
    Or AUTO_INCREMENT fait partie des 'table_options'.
    Donc la bonne syntaxe devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE COMPANYTYPE
    (
        ID INT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE,
        NAME VARCHAR(30),
        PRIMARY KEY(ID),
    )
    AUTO_INCREMENT=0
    ;
    Sinon il y a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE COMPANYTYPE
    AUTO_INCREMENT = 0
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Réponses: 10
    Dernier message: 08/12/2014, 16h11
  2. faire commencer l'AUTO INCREMENT à 0
    Par pazze dans le forum Débuter
    Réponses: 6
    Dernier message: 02/09/2012, 21h19
  3. Réponses: 2
    Dernier message: 26/11/2009, 13h05
  4. Faire commencer un tableau a l'indice 1
    Par agonotrax dans le forum C#
    Réponses: 13
    Dernier message: 10/10/2007, 15h13
  5. Comment faire commencer l'incémentation par 0
    Par egg3774 dans le forum Access
    Réponses: 2
    Dernier message: 28/03/2007, 20h06

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