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 :

auto_increment, insertion, duplicate Entry


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 23
    Par défaut auto_increment, insertion, duplicate Entry
    Bonjour,

    j'ai une table dont le script de création est le suivant :

    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
    CREATE TABLE `article` (
      `idArticle` int(11) NOT NULL auto_increment,
      `idSousRubrique` int(11) NOT NULL default '0',
      `idUser` int(11) NOT NULL default '0',
      `idPriorite` int(11) NOT NULL default '0',
      `idStatut` int(11) NOT NULL default '2',
      `titreArticle` text,
      `dateArticle` timestamp NOT NULL default '0000-00-00 00:00:00',
      `accrocheArticle` text,
      `texteArticle` text,
      `langArticle` int(11) NOT NULL default '1',
      `idGrubrique` int(10) unsigned NOT NULL,
      `rank` int(10) unsigned NOT NULL default '0',
      `latestEdit` timestamp NOT NULL default '0000-00-00 00:00:00',
      PRIMARY KEY  (`idArticle`),
      KEY `sousrubriqueArticle_FK` (`idSousRubrique`),
      KEY `idSousRubrique` (`idSousRubrique`),
      KEY `dateArticle` (`dateArticle`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC;
    Et mon soucis est le suivant,

    la valeur courante de mon auto_increment est : 6651

    lorsque je tente de faire la requete suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into article (idArticle,idGrubrique) values(6652,12)
    mysql me retourne l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Duplicate entry '6652' for key 1
    nota: quelque soit la valeur que j'essaye d'inserer cela donne cette ereur.

    Bien evidemment, ma table ne contient pas d'entrée ayant pour idArticle la valeur que j'essaye d'insérer.

    Je ne comprends absolument pas d'où cela peut provenir...

  2. #2
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 636
    Par défaut
    Le principe de l'auto incrément a moins que je ne me trompe c'est justement de ne pas à avoir à saisir l'id mais qu'il soit incrémenté directement dans la colonne clé primaire automatiquement
    la culture c'est comme la confiture moins on en a plus on l'étale.

    Mes tutos

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 23
    Par défaut
    oui mais là j'ai besoin d'insérer à la mano.

  4. #4
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 636
    Par défaut
    oui c'est ce que je dis regarde cet exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE animals (
         id MEDIUMINT NOT NULL AUTO_INCREMENT,
         name CHAR(30) NOT NULL,
         PRIMARY KEY (id)
     );
     
    INSERT INTO animals (name) VALUES 
        ('dog'),('cat'),('penguin'),
        ('lax'),('whale'),('ostrich');
    le résultat:

    +----+---------+
    | id | name |
    +----+---------+
    | 1 | dog |
    | 2 | cat |
    | 3 | penguin |
    | 4 | lax |
    | 5 | whale |
    | 6 | ostrich |
    +----+---------+
    il ne remplit pas la colonne Id et pourtant cela insère en spécifiant l'id+1 a chaque insertion meme a la main

    Citation Envoyé par azzhunter Voir le message
    oui mais là j'ai besoin d'insérer à la mano.
    la culture c'est comme la confiture moins on en a plus on l'étale.

    Mes tutos

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 23
    Par défaut
    j'ai besoin de spécifier l'idArticle à la main, je sais comment fonctionne et à quoi sert un auto_increment hein =)

  6. #6
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 636
    Par défaut
    en auto incrément tu ne peux pas il me semble

    Citation Envoyé par azzhunter Voir le message
    j'ai besoin de spécifier l'idArticle à la main, je sais comment fonctionne et à quoi sert un auto_increment hein =)
    la culture c'est comme la confiture moins on en a plus on l'étale.

    Mes tutos

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 23
    Par défaut
    Citation Envoyé par azzhunter Voir le message
    Bien evidemment, ma table ne contient pas d'entrée ayant pour idArticle la valeur que j'essaye d'insérer.
    oui =)

    Je sens que c'est une erreur "à la con" je viens de recreer ma table (avec son contenu) mais j'ai enlevé l'auto_increment.

    mais l'erreur est toujours là, sauf si je met un idArticle > au plus haut id (historiquement parlant, meme apres delete)



    je fouille


    EDIT : Bon j'ai finalement trouvé et j'ai tres honte de moi,

    il se trouve que j'avais un trigger (je ne sais pas d'où il vient) qui alimentait une table contenant l'idArticle en tant qu'index Unique. Or MySQLGUITools n'a pas d'interface pour les triggers, donc je ne savais que j'en avais un qui faisait ça. Bref la deuxieme table n'etant pas vidé lors de la suppression d'une entrée de la premiere, j'avais bien un duplicate mais pas dans la table supposé.

    Merci pour votre aide.

    Cordialement,

    azzhunter

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

Discussions similaires

  1. [MySQL] Insert duplicate entry primary key
    Par samtheh dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 08/02/2011, 22h34
  2. Message d'erreur de Mysql "Duplicate entry '0' for key 1"
    Par Alexandrebox dans le forum Requêtes
    Réponses: 4
    Dernier message: 05/02/2010, 16h54
  3. PHP MYADMIN erreur 1062 duplicate entry
    Par carelha dans le forum Débuter
    Réponses: 3
    Dernier message: 12/06/2008, 22h06
  4. Error 1062: Duplicate entry
    Par Paulinho dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 17/12/2005, 17h01
  5. #1062 - Duplicate entry
    Par Spaccio dans le forum Débuter
    Réponses: 6
    Dernier message: 02/06/2004, 11h18

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