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

Langage SQL Discussion :

remplir deux tables en meme temps


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 20
    Points : 10
    Points
    10
    Par défaut remplir deux tables en meme temps
    Bonjour,

    Voici mon probleme, je suis en présence de deux tables, toutes les deux ayant une clé primaire qui s'auto incrémente, l'une de ces tables a comme clé etrangére la clé primaire de l'autre, ce que je veux faire, c'est remplir les deux tables en même temps, c'est à dire que je remplie la première table avec mes données, ensuite je remplie la deuxieme (qui doit contenir la clé primaire de l'autre)......

    j'ai deux soucis, j'avais pensé à faire ça :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT MAX(db_id) AS max FROM commande WHERE id_client='$client
    INSERT INTO produit_commande (nombre, id_produit,id_commande)     VALUES ('$QUANTITY_1','$ID1',max)
    (les dollars c'est parce que c'est du perl)

    idéé que j'ai récupéréedans un topic du forum acces, a savoir récuper la plus grande clé de la table précedente qui devrait etre la plus récemment rentrée, donc celle qui nous concerne.

    Deja la requete ne marche pas et je ne sais pas pourquoi (je suis pas tres bon en sql )
    De plus cette feinte tombe a l'eau si deux utilisateurs rentrent des données en même temps.....Jé suis carrément bloqué là
    merci de m'aider

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut Re: remplir deux tables en meme temps
    Citation Envoyé par rafawel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT MAX(db_id) AS max FROM commande WHERE id_client='$client
    INSERT INTO produit_commande (nombre, id_produit,id_commande)     VALUES ('$QUANTITY_1','$ID1',max)
    Tu utilises un alias de champ utilisé pour formatter l'affichage du résultat d'une requête comme une variable dans la requête suivante ! Si tu veux utiliser des variables, SQL ne suffit pas, il te faut un langage procédural dans lequel tu déclareras ta variable pour récupérer tes infos, que tu pourras ré-utiliser par la suite.
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonjour,

    On pourrait imaginer 1 trigger qui se déclenche lors de l'insertion ds la 1ere table, et qui appelle 1 procédure stockée pour insérer à la suite dans la seconde...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Merci pour vos reponses, j'ai compris mon erreur lors de ma requete, mais cela ne resoud pas le probleme du cas de deux utilisateur lancant deux procédures simultannées.
    Je vais me pencher sur l'utilisation de trigger (je ne sais pas ce que c'est)
    meric encore.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    J'ai trouvé une solution a mon probleme en utilisant localtime en Perl
    Merci

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

Discussions similaires

  1. [PostgreSql] alimenter deux tables en meme temps
    Par galeo27 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/06/2009, 16h28
  2. Enregister dans deux table en meme temps
    Par Msysteme dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 10/04/2009, 15h40
  3. Insert dans deux tables en meme temps?
    Par radzar dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/04/2008, 11h33
  4. FOREIGN KEY vers deux tables en meme temps
    Par lichman dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 27/11/2007, 03h11
  5. Comptez sur deux tables en même temps
    Par genova dans le forum Langage SQL
    Réponses: 12
    Dernier message: 13/09/2004, 18h58

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