Commit / Rollback in PL/pgSQL ?
От | Michael Kleiser |
---|---|
Тема | Commit / Rollback in PL/pgSQL ? |
Дата | |
Msg-id | 416D4D60.6070005@webde-ag.de обсуждение исходный текст |
Ответы |
Re: Commit / Rollback in PL/pgSQL ?
|
Список | pgsql-general |
I found on http://www.physiol.ox.ac.uk/Computing/Online_Documentation/postgresql/plpgsql-porting.html that it is not poosible to use start or end a transaction in plpgsl. I tried to create a plplsql-function on PostgreSQL 8.0 beta 3 I can comile CREATE OR REPLACE FUNCTION insert_many_commit( integer ) RETURNS void AS ' DECLARE counter INTEGER := $1; BEGIN WHILE counter > 0 LOOP INSERT INTO testtab (id, modification_date, description ) VALUES ( NEXTVAL(''seq_testtab''),now(), ''Eintrag von insert_many() '' || counter ); COMMIT; counter := counter-1; END LOOP; RETURN; END; ' LANGUAGE 'plpgsql'; So I think it's possible to have COMMIT / ROLLBACK in PLPgSQL But I can't execute this funktion this way: # select insert_many_commit(1000); ERROR: SPI_execute_plan failed executing query "COMMIT": SPI_ERROR_TRANSACTION Is there an other way to execute tis function ? If the latter, is it poosible in other languages like PL/Python or PL/Perl ? regards Michael Kleiser
В списке pgsql-general по дате отправления: