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

  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
    ça m'etonnerai ça fonctionne sur une autre table, mais pas celle la.

    C'est pour ça que j'ai donné tout le descriptif de la table

  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 : 73
    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,
    AS-tu modestement envisagé que l'id 6652 puisse déjà être présente dans la table ?
    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)

  9. #9
    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