sad wrote:
Guillaume Lelarge wrote:
sad wrote:
A. Kretschmer wrote:

is it expected that the currval() changes its value between calls within one statement ?

Conclusion, don't call nextval() within a TRIGGER, and insert either
nextval() for the column or omit this column.

I only note that i still want to discuss the titled problem or to be
given an exact pointer to documentation regarding the currval() behavior
in the described situation, that i had.


Well, your situation is weird, to say the least. currval() doesn't change the value of a sequence. Adding a trigger that calls nextval() will change the value. But you're not telling us which kind of trigger... per statement or for each row ? if it's for each row, then that's quite understandable.

my fault --  i forgot to say.
The trigger is "for each row".

It is understandable, i agree, but it is surprising -- alternative behavior (constant result off currval()) is understandable too.


It isn't surprising. A "for each row" trigger will execute the trigger function for each individual row, which will executes nextval each time... so each currval will get a different value.


--
Guillaume.
 http://www.postgresqlfr.org
 http://dalibo.com

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to