updating sequence value for column 'serial'

From: Matthias Apitz <guru(at)unixarea(dot)de>
To: pgsql-general(at)postgresql(dot)org
Subject: updating sequence value for column 'serial'
Date: 2019-09-24 14:47:38
Message-ID: 20190924144738.GA2377@c720-r342378
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


Hello,

We have in a database some 400 tables, 75 of them have a 'serial'
column, like the one in the example table 'titel_daten', column 'katkey'.

I want to create a SQL script to adjust alls these sequences to the
max+1 value in its column after loading the database from CSV file.
I found no other way as the code below (the RAISE NOTICE is
only for test at the moment and the output is correct for this table,
i.e current max in 'katkey' is 330721):

sisis=# DO $$
sisis$# DECLARE
sisis$# maxikatkey integer := ( select max(katkey) from titel_daten );
sisis$# result integer := 1;
sisis$# BEGIN
sisis$# maxikatkey := maxikatkey +1;
sisis$# RAISE NOTICE '%', maxikatkey ;
sisis$# result := (SELECT SETVAL('titel_daten_katkey_seq', maxikatkey) );
sisis$# RAISE NOTICE '%', result ;
sisis$# END $$;
NOTICE: 330722
NOTICE: 330723
DO

Is there any better way? Thanks

matthias
--
Matthias Apitz, ✉ guru(at)unixarea(dot)de, http://www.unixarea.de/ +49-176-38902045
Public GnuPG key: http://www.unixarea.de/key.pub

Mientras haya voluntad de lucha habrá esperanza de vencer.

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2019-09-24 15:01:46 Re: updating sequence value for column 'serial'
Previous Message Adrian Klaver 2019-09-24 14:36:52 Re: Operator is not unique