Re: Error working with Temporary Sequences in plpgsql in 8.1 (8.0
От | Daniel Schuchardt |
---|---|
Тема | Re: Error working with Temporary Sequences in plpgsql in 8.1 (8.0 |
Дата | |
Msg-id | 43E3AE3C.2020108@web.de обсуждение исходный текст |
Ответ на | Re: Error working with Temporary Sequences in plpgsql in 8.1 (8.0 works fine) (Jaime Casanova <systemguards@gmail.com>) |
Список | pgsql-hackers |
A nice workaraound because EXECUTE 'select nextval(''test'')' INTO I; doesnt work in 8.0 seems to be: myid:=nextval('stvtrsid_seq'::TEXT); This seems to work in every case. Daniel Jaime Casanova schrieb: try this way: CREATE OR REPLACE FUNCTION testseq() RETURNS void AS $BODY$BEGIN EXECUTE 'CREATE TEMP SEQUENCE test'; PERFORM testseq1(); DROP SEQUENCE test; RETURN;END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; ALTER FUNCTION testseq() OWNER TO postgres; CREATE OR REPLACE FUNCTION testseq1() RETURNS void AS $BODY$DECLARE I INTEGER;BEGIN EXECUTE 'select nextval(''test'')' INTO I; raise notice '%', I; RETURN;END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; ALTER FUNCTION testseq1() OWNER TO postgres; SELECT testseq(); SELECT testseq(); is the same problem as with temp tables, you must put their creation, and in this case even the nextval in an execute... -- regards, Jaime Casanova (DBA: DataBase Aniquilator ;)
В списке pgsql-hackers по дате отправления: