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 :

Probleme insert dans mysql


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Full Stack
    Inscrit en
    Mai 2010
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mai 2010
    Messages : 159
    Par défaut Probleme insert dans mysql
    Bonjour à tous,

    J'ai une base en InnoDb qui contient 3 tables. 2 tables sont en FOREIGN KEY sur la première. Quand je fais des insert de plusieurs enregistrements en transactionnel sur les 3 tables, j'utilise mysql_insert_id() de la première table pour remplir les 2 autres. Le problème que je rencontre est que je me retrouve avec des id dupliqués ce qui met en vrac la bdd. De plus le champ est en UNIQUE et auto_increment. Qu'elle serait la solution pour pallier se problème?

    Merci par avance.

  2. #2
    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
    Si je comprends bien, tu as ce genre de MCD au départ :
    B -0,n----associer----1,1- A
    C -0,n----associer----1,1--|

    Et donc ce genre de table :
    A (A_id...)
    B (B_id, B_id_A...)
    C (C_id, C_id_A...)

    Quand je fais des insert de plusieurs enregistrements en transactionnel sur les 3 tables, j'utilise mysql_insert_id() de la première table pour remplir les 2 autres.
    Si je comprends bien, tu insères une ligne dans A et tu récupères l'identifiant auto-incrémenté pour alimenter la clé étrangère dans B et dans C ?

    Le problème que je rencontre est que je me retrouve avec des id dupliqués ce qui met en vrac la bdd.
    Dans quelle table ?
    Si, comme je l'ai représenté, A_id est la clé primaire de la table A, tu ne peux pas avoir de doublons.

    Si tu as des doublons dans les clés étrangères, ça n'a a priori rien de choquant.

    De plus le champ est en UNIQUE et auto_increment.
    De quelle colonne (et pas champ ! ) parles-tu ?

    Bref, il faudrait que tu détailles un peu plus ta structure et tes opérations pour qu'on comprenne mieux.
    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 !

  3. #3
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    salut,

    je crois comprendre ce que tu veux dire tu as une table qui a été partitionnée verticalement en plusieurs tables du coup ton id sert pour chacune d'elle non?

    si c'est bien ça, alors tu auras peut-être besoin de faire des insert...on duplicate key update

    sinon comme le dit cinephil fait voir ton modèle de données et explique un peu plus en détails

Discussions similaires

  1. probleme d'insertion dans mysql avec java
    Par hypothese dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 26/09/2008, 12h02
  2. [MySQL] memory limit sur insertion dans MySQL
    Par bru2336 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 13/11/2007, 08h32
  3. probleme insert dans une bd access
    Par ocean24 dans le forum JDBC
    Réponses: 1
    Dernier message: 14/09/2006, 18h44
  4. Réponses: 4
    Dernier message: 26/06/2006, 16h16
  5. Réponses: 16
    Dernier message: 02/12/2005, 10h39

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