Search Postgresql Archives

ALTER SEQUENCE ... RESTART WITH [variable] problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I need to generate a couple of dozen statements reseting my sequences
so that they're next values are greater than the biggest existing ids.
The problem is, I can't even form a statement to update one sequence.
This is what I tried:

CREATE OR REPLACE FUNCTION init_sequences() RETURNS void AS
$BODY$
DECLARE
	next_id_table1 INTEGER;
BEGIN
	SELECT INTO next_id_table1 MAX(id)+1 FROM  table1;
	ALTER SEQUENCE pk_table1 RESTART next_id_table1;
END;
$BODY$
 LANGUAGE 'plpgsql';

The problem seems to be the ALTER statement:

ERROR:  syntax error at or near "$1" at character 36
QUERY:  ALTER SEQUENCE pk_table1 RESTART  $1
CONTEXT:  SQL statement in PL/PgSQL function "init_sequences" near line 5

If I change the ALTER statement like this
	ALTER SEQUENCE pk_table1 RESTART 200;
it works. But is obviously not what I wanted.
Is there a way to get the ALTER SEQUENCE statement to use a value
stored in a variable?

t.n.a.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux