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

PostgreSQL Discussion :

PostgreSql


Sujet :

PostgreSQL

  1. #1
    Membre éclairé
    Profil pro
    Chef d’entreprise
    Inscrit en
    Mars 2002
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef d’entreprise

    Informations forums :
    Inscription : Mars 2002
    Messages : 212
    Par défaut PostgreSql
    Je vais présenter mon problème par un exemple classique
    J'ai une table
    "commande"
    {Numero_Cde : numéro autoincrémenté
    Client : Texte,
    Date_cde}

    "Detail_Cde"
    {index : numéro autoincrémenté,
    Numero_Cde,
    Article,
    Prix}

    Dans mon interface, l'utilisateur crée un nouvelle commande et ajoute des articles puis clique sur un bouton. A cet instant, une nouvelle commande est crée dans la table "Commande".
    Je veux récupérer le numéro généré autmatiquement par ma base pour faire une requête d'insertion des articles corespondants à cette commande dans la table "detail_cde".
    Comment faire?
    Merci

  2. #2
    Membre chevronné

    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 338
    Par défaut
    Bonjour

    le champ auto-incrément en PostgreSQL est en fait un type SERIAL (c-a-d un champ integer avec un séquence) pour recuperer le numéro de la séquence en cours, il suffit d'utiliser currval (voir tuto).

  3. #3
    Membre éclairé
    Profil pro
    Chef d’entreprise
    Inscrit en
    Mars 2002
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef d’entreprise

    Informations forums :
    Inscription : Mars 2002
    Messages : 212
    Par défaut
    Je dois insérer plusieurs lignes pour la même commande dans la table "Detail_cde".
    Est-ce qu'il n' y a pas de risque d'erreurs, si un autre utilisateur crée une nouvelle commande dans la table "COMMANDE" avant que je termine l'insertion de toutes mes lignes dans la table "Detail_cde"?

  4. #4
    Membre chevronné

    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 338
    Par défaut
    Bonjour

    Je dois insérer plusieurs lignes pour la même commande dans la table "Detail_cde".
    Est-ce qu'il n' y a pas de risque d'erreurs, si un autre utilisateur crée une nouvelle commande dans la table "COMMANDE" avant que je termine l'insertion de toutes mes lignes dans la table "Detail_cde"?
    Si vous utilisez les transactions, alors le numéro de séquence récupéré avec currval reste le même durant la transaction même si d'autre commande sont crées par d'autre client.

Discussions similaires

  1. [MySQL -> PostGreSQL] Migration
    Par Nepomiachty Olivier dans le forum Administration
    Réponses: 9
    Dernier message: 23/04/2010, 16h33
  2. [Kylix] PostgreSql via ODBC
    Par doykati dans le forum EDI
    Réponses: 3
    Dernier message: 08/02/2007, 10h10
  3. [Postgresql] pb lors d'insertion de données
    Par bob20000 dans le forum Requêtes
    Réponses: 8
    Dernier message: 04/11/2002, 15h33
  4. Réponses: 4
    Dernier message: 28/09/2002, 00h00
  5. Réponses: 2
    Dernier message: 30/05/2002, 08h54

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