Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/03/2006, 23h43   #1
Membre régulier
 
Inscription : mars 2002
Messages : 204
Détails du profil
Informations personnelles :
Localisation : Tunisie

Informations forums :
Inscription : mars 2002
Messages : 204
Points : 77
Points : 77
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
ZIED est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2006, 11h04   #2
Membre éclairé
 
Inscription : janvier 2005
Messages : 336
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : janvier 2005
Messages : 336
Points : 353
Points : 353
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).
__________________
Christophe Chauvet (KrysKool)
kryskool est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2006, 20h31   #3
Membre régulier
 
Inscription : mars 2002
Messages : 204
Détails du profil
Informations personnelles :
Localisation : Tunisie

Informations forums :
Inscription : mars 2002
Messages : 204
Points : 77
Points : 77
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"?
ZIED est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 09h43   #4
Membre éclairé
 
Inscription : janvier 2005
Messages : 336
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : janvier 2005
Messages : 336
Points : 353
Points : 353
Bonjour

Citation:
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.
__________________
Christophe Chauvet (KrysKool)
kryskool est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h59.


 
 
 
 
Partenaires

Hébergement Web