| From: | Sim Zacks <sim(at)compulab(dot)co(dot)il> |
|---|---|
| To: | pgsql-general(at)postgresql(dot)org |
| Subject: | update sequence conversion script |
| Date: | 2004-10-11 08:39:03 |
| Message-ID: | 1381227955.20041011103903@compulab.co.il |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
I am in the process of converting an existing database to PostGreSQL
and wrote a generic script to update all of the sequences as they default at 1.
I thought it would be useful to other people who are converting their
databases.
If anyone can write this script in using plpythonu, I would love to
see how it is done.
create or replace function UpdateSequences() returns varchar(50) as
$$
declare
seqrecord record;
tblname varchar(50);
fieldname varchar(50);
maxrecord record;
maxvalue integer;
begin
for seqrecord in select relname from pg_statio_user_sequences Loop
tblname:=split_part(seqrecord.relname,'_',1);
fieldname:=split_part(seqrecord.relname,'_',2);
for maxrecord in execute 'select max(' || fieldname || ') as f1 from ' || tblname LOOP
maxvalue:=maxrecord.f1;
end loop;
execute 'alter sequence ' || seqrecord.relname || ' restart with ' || coalesce(maxvalue,0)+1 ;
End LOOP;
return 1;
end
$$
language plpgsql
Sim Zacks
IT Manager
CompuLab
04-829-0145 - Office
04-832-5251 - Fax
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Dominic Mitchell | 2004-10-11 08:40:01 | Re: Get Postgre Status and Information |
| Previous Message | Pierre-Frédéric Caillaud | 2004-10-11 08:21:22 | Re: SELECT from a set of values really slow? |