| From: | Guillaume Lelarge <guillaume(at)lelarge(dot)info> | 
|---|---|
| To: | sad <sad(at)bankir(dot)ru> | 
| Cc: | pgsql-sql(at)postgresql(dot)org | 
| Subject: | Re: currval() within one statement | 
| Date: | 2008-01-22 09:13:26 | 
| Message-ID: | 4795B3B6.5040004@lelarge.info | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-sql | 
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.
BTW, sequence functions are described here :
   http://www.postgresql.org/docs/8.2/interactive/functions-sequence.html
Regards.
-- 
Guillaume.
  http://www.postgresqlfr.org
  http://dalibo.com
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Richard Huxton | 2008-01-22 09:13:56 | Re: currval() within one statement | 
| Previous Message | Stuart Brooks | 2008-01-22 08:05:04 | TIMESTAMP comparison problem |