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 de création table avec PK et auto_increment


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mars 2005
    Messages : 95
    Par défaut Probleme de création table avec PK et auto_increment
    Bonjour
    J'ai un problème pour recréer cette table provenant d'une version 3.23 sur une 4.1.15.

    J'ai l'impression qu'il ne tient pas compte du Disable Key car j'ai une erreur:
    ERROR 1062 (23000): Duplicate entry '1' for key 1

    et qu'il commence à incrémenter la colonne ID à 1, et non à zero.

    je ne comprends pas pourquoi il ne tient pas compte du disable key.

    Pouvez-vous m'aider svp ?

    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    CREATE TABLE `users_group_security` (
      `ID` int(10) NOT NULL auto_increment,
      `check` varchar(5) NOT NULL default '',
      `admin` varchar(5) NOT NULL default '',
      `admin_view` varchar(5) NOT NULL default '',
      `csr` varchar(5) NOT NULL default '',
      `fin` varchar(5) NOT NULL default '',
      `ls` varchar(5) NOT NULL default '',
      `grs` varchar(5) NOT NULL default '',
      `weekly` varchar(5) NOT NULL default '',
      `monthly` varchar(5) NOT NULL default '',
      `stock` varchar(5) NOT NULL default '',
      `password` varchar(5) NOT NULL default '',
      `unit` varchar(5) NOT NULL default '',
      `user` varchar(5) NOT NULL default '',
      `supplier` varchar(5) NOT NULL default '',
      `forecast` varchar(5) NOT NULL default '',
      `bigbrother` varchar(5) NOT NULL default '',
      `menus` varchar(5) NOT NULL default '',
      `ncr` varchar(5) NOT NULL default '',
      `transfers` varchar(5) NOT NULL default '',
      `nnsuppliers` varchar(5) NOT NULL default '',
      `expenses` varchar(5) NOT NULL default '',
      `hands` varchar(5) NOT NULL default '',
      PRIMARY KEY  (`ID`)
    ) TYPE=MyISAM;
     
    /*!40000 ALTER TABLE `users_group_security` DISABLE KEYS */;
     
    --
    -- Dumping data for table `users_group_security`
    --
     
     
    LOCK TABLES `users_group_security` WRITE;
    INSERT INTO `users_group_security` VALUES 
    (0,'1','1','0','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1'),
    (1,'1','0','1','1','1','1','1','1','1','1','1','','','0','1','1','','1','1','1','','1'),
    (2,'1','0','0','1','1','1','1','1','1','1','1','','','','','','','1','1','1','','1'),
    (3,'1','0','0','1','1','0','0','1','1','0','','','','','','','','','1','','',''),
    (4,'1','0','0','0','0','0','1','0','0','0','','','','1','','','','','','','',''),
    (5,'1','0','0','1','1','1','1','1','1','1','1','','','','','','','1','1','1','','1'),
    (8,'','0','0','0','0','0','0','0','0','0','0','0','0','1','0','0','1','1','','1','',''),
    (9,'','','','','','','','','','','','','','','','','1','','','','','');
     
     
     
    /*!40000 ALTER TABLE `users_group_security` ENABLE KEYS */;
    UNLOCK TABLES;

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 208
    Par défaut
    Bonjour,

    Même avec un MySQL 3 les colonnes auto_increment commencent à 1!
    Si vous mettez 0 c'est la valeur 1 qui sera choisie ou plus si 1 existe déjà.
    D'où le duplicate key quand vous insérez 1 après avoir voulu inséré 0.

    Voilà mon avis.

    Maintenant si vous n'aviez pas de problème avant cela vient surement d'une difference de comportement entre les versions. valeur NULL si valeur incorrect, abscence d'avertissement et tuple erroné ignoré, etc... 8)

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mars 2005
    Messages : 95
    Par défaut
    J'ai trouvé une solution: un petit set sql_mode='NO_AUTO_VALUE_ON_ZERO' au début du dump.


    NO_AUTO_VALUE_ON_ZERO affects handling of AUTO_INCREMENT columns. Normally, you generate the next sequence number for the column by inserting either NULL or 0 into it. NO_AUTO_VALUE_ON_ZERO suppresses this behavior for 0 so that only NULL generates the next sequence number.

    This mode can be useful if 0 has been stored in a table's AUTO_INCREMENT column. (Storing 0 is not a recommended practice, by the way.) For example, if you dump the table with mysqldump and then reload it, MySQL normally generates new sequence numbers when it encounters the 0 values, resulting in a table with contents different from the one that was dumped. Enabling NO_AUTO_VALUE_ON_ZERO before reloading the dump file solves this problem. mysqldump now automatically includes in its output a statement that enables NO_AUTO_VALUE_ON_ZERO, to avoid this problem.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 208
    Par défaut
    Bien. Y'a plus qu'à appuyer sur le bouton RESOLU

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

Discussions similaires

  1. Suppression et Création table avec critère de variable
    Par stephanies_1977 dans le forum VBA Access
    Réponses: 4
    Dernier message: 12/03/2008, 13h53
  2. Requête : création table avec un champ fixe
    Par Laurelie dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 11/02/2008, 16h59
  3. Erreur création table avec cle etrangere
    Par cd090580 dans le forum Outils
    Réponses: 2
    Dernier message: 05/01/2008, 19h17
  4. Réponses: 3
    Dernier message: 26/07/2007, 16h23
  5. Newbie PgSQL->Probleme Creation de table avec FOREIGN KEY
    Par ralkif dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 07/03/2006, 21h59

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