Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 21/12/2011 10:54:53
- vincent29
- Membre
Recuperer un serail lors d'une transaction
Bonjour à tous,
Débutant sous postgresql je rencontre un problème lors d'une transaction :
Je possède deux tables que voici :
CREATE TABLE entete
(
entete_code serial NOT NULL,
entete_date_deb timestamp without time zone NOT NULL,
entete_date_fin timestamp without time zone NOT NULL,
entete_volume_eau real,
entete_surface real,
CONSTRAINT pk_entete PRIMARY KEY (entete_code),
ON UPDATE NO ACTION ON DELETE NO ACTION
)
CREATE TABLE ligne
(
ligne_code serial NOT NULL,
ligne_quantite_employee real NOT NULL,
entete_ligne_code integer NOT NULL,
CONSTRAINT pk_ligne PRIMARY KEY (ligne_code),
CONSTRAINT fk_entete_code FOREIGN KEY (entete_code)
REFERENCES entete (entete_code) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
Ces deux tables sont alimentées par un formulaire. Je souhaite faire une transaction afin que l'enregistrement dans la table "entete" ne soit pas sauvegardé si un probleme est rencontré lors de l'insertion des données dans la table "ligne".
Mon probleme est que lors de l'insertion de donnée dans ma table "ligne" je ne sais pas comment obtenir la valeur du champs "entete_ligne_code" étant donné qu'il s'agit d"une clé étrangere faisant reference au champ "entete_code" de la table "entete" et que celui ci est de type "serial".
Je voulais donc savoir s'il était possible de récuperer un serial dans une transaction.
Merci de vos futures réponses
Hors ligne
#2 21/12/2011 11:08:02
- flo
- Membre
Re : Recuperer un serail lors d'une transaction
Dans l'insert de la première table, tu peux utiliser la clause RETURNING :
Hors ligne
#3 21/12/2011 11:25:00
- vincent29
- Membre
Re : Recuperer un serail lors d'une transaction
Je vais pouvoir m'en sortir avec ça.
Merci beaucoup pour la rapidité et l'efficacité de ta réponse.
Hors ligne
Pages : 1