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 по дате отправления: