Bonjour,

je m'arrache les cheveux depuis quelques temps. J'ecris actuellement une fonction en postgresql dans laquel je fais 2 insert. Je fais un insert dans une table dont la cle primaire est en Serial (auto increment.) Hors j'ai besoin de recuperer cette cle pour le 2eme insert... J'ai essayer de refaire un select ensuite du style :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
 
DECLARE mavar INTEGER;
BEGIN
insert into matable(monchamp) values ("toto");
 
select id INTO mavar from matable where monchamp= "toto";
 
if (mavar IS NULL) then
 return false;
end if;
 
/* traitement avec mavar */
 
END;
Mais meme si le 1er insert a bien reussi (je verifie dans la base) la variable mavar est toujours NULL et ma function exit false.. Quand je test manuellement les commande 1 a 1 cela fonctionne...

Je ne comprend pas ... voyez vous le probleme ? ou connaissez vous une autre technique pour faire cela ? (recuperer la derniere valeur d'un champ default)