On Tue, 21 Oct 2003, CSN wrote:
--- "scott.marlowe" <sc***********@ihs.com> wrote: On Mon, 20 Oct 2003, CSN wrote:
How do you get the last value of a sequence
without having called nextval? phppgadmin displays last
value for sequences (I haven't found out how yet rooting
through the code).
First, the mandatory, why would you want to do that?
For updating sequences after copy importing data (with
id's).
select setval('table_id_seq', (select max(id) from
table));
vs.
select setval('table_id_seq', (select last_value from
table_id_seq));
Is there a transaction-safe way?
Not sure. I don't think so.
That second one won't work, or at least shouldn't do much useful. I.e.
you're setting table_id_seq to be equal to itself.
The first one, the select max(id) one, is the standard way of doing this,
if you're afraid users might be diddling the data while you're trying to
import it, you can always set pg_hba.conf to only let you log in from
local or something and do it there. But mostly if the copy command and
the select setval are in a bacth file it should all happen fast enough to
escape notice by the users until it's already loaded and set.
---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to
ma*******@postgresql.org so that your
message can get through to the mailing list cleanly