Code to automatically refresh sequences after loading data?

From: "steve boyle" <boylesa(at)dial(dot)pipex(dot)com>
To: pgsql-admin(at)postgresql(dot)org
Subject: Code to automatically refresh sequences after loading data?
Date: 2001-10-27 17:36:16
Message-ID: 9rerbg$25uq$1@news.tht.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Has anyone got any code that will automatically carry out setvals for serial
fields after loading data. I'm trying to write a function that will
identify and go through all sequences within the current database and 'fix'
the sequences to be set as the correct next value.

I cannot find any way of consistently identifiying the table/field that the
sequence has been defined over by interrogating the system catalogues.

The function so far is:

create function sys_refresh_sequences () returns integer as '
DECLARE
myfield RECORD;
tblname text;
BEGIN
FOR myseq IN SELECT * FROM pg_class WHERE relkind=''S'' ORDER BY
relname LOOP
myfield := substring(myseq.relname, 1,
char_length(myseq.relname)-4);
....
....
RAISE NOTICE ''REFRESHING SEQUENCE % ON %'', myseq.relname,
myfield;
END LOOP;

return 1;
END;
' language 'plpgsql';

Any pointers would be appreciated

Many thanks

Steve Boyle
boylesa(at)dial(dot)pipex(dot)com

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Eric Day 2001-10-27 18:12:20 How can I..
Previous Message Emmanuel Guyot 2001-10-27 11:08:42 Re: pg_dump and timestamp : problem with TimeZone