PostgreSQL
La base de données la plus sophistiquée au monde.

Ouverture de session

Navigation

Contactez-nous

Administration du site :
"equipe chez postgresqlfr point org"

Contact presse :
"fr chez postgresql point org"

Contact association :
"bureau chez postgresqlfr point org"

Questions PostgreSQL :
 IRC :
  serveur irc.freenode.net
  canal #postgresqlfr

Recherche

Accéder aux archives

« Octobre 2008  
Lun Mar Mer Jeu Ven Sam Dim
  2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31  

Syndication

Flux XML

Sondage

Quelle est la version de PostgreSQL la plus répandue sur vos serveurs ?
8.3
10%
8.2
42%
8.1
40%
8.0
2%
7.4
6%
7.3 ou antérieure
0%
Nombre de votes: 48

RĂ©cup d'un ID depuis un Trigger

Technique - général | Récup d'un ID depuis un Trigger

Par ThierryDev le 18/08/2006 - 09:46

Bonjour Ă  tous,

J'ai créé un Trigger dans ma base pour avoir un ID lors de la création d'un enregistrement dans une table :
DECLARE Numero Numeric;
begin
SELECT MAX(AFF_IDAFFAIRE) into Numero FROM T_AFFAIRES WHERE SIT_ID=new.SIT_ID;
If Numero is null then
Numero := 0;
end if;
Numero := Numero + 1;
new.AFF_IDAFFAIRE := Numero;
RETURN new;
end;

Cela fonctionne très bien mais j'ai besoin de récupérer le nouveau numéro dans mon application.
Comment faire?
Auriez-vous une idée? Je vous en remercie d'avance.

ThierryDev

Options d'affichage des commentaires

Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder les paramètres" pour activer vos changements.

Bonsoir

Christophe Chauvet/ = 20 Août, 2006 - 21:59

Bonsoir

Pourquoi n'utilisez vous pas une SEQUENCE pour le champ AFF_IDAFFAIRE de la table Numero

Ainsi en mode transactionnel, vous pourriez recupérer votre numéro de séquence actuel avec la requête :

SELECT currval('ma_sequence');

vouz seriez également sur de récupérer le bon numéro si 2 insertions simultanée était faite par 2 instances distinctes de l'applicatif.

Cordialement.

Christophe Chauvet
KrysKool.Org


Pb Sequence

ThierryDev/ = 21 Août, 2006 - 09:27

Bonjour,
Je n'ai pas utilisé la séquence car l'incrémentation du champ AFF_IDAFFAIRE se fait par rapport à l'autre champ SIT_ID.
SIT_ID - AFF_IDAFFAIRE
1 - 1
1 - 2
2 - 1
3 - 1
3 - 2
3 - 3
3 - 4

Bonne journée.

ThierryDev.


© PostgreSQLFr, tous droits rĂ©servĂ©s.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.