Re: Conditional commit inside functions
От | Gerhard Wiesinger |
---|---|
Тема | Re: Conditional commit inside functions |
Дата | |
Msg-id | alpine.LFD.1.10.0812260923060.10575@bbs.intern обсуждение исходный текст |
Ответ на | Conditional commit inside functions (Gerhard Wiesinger <lists@wiesinger.com>) |
Ответы |
Re: Conditional commit inside functions
|
Список | pgsql-general |
Hello! I tried the following, but still one transaction: SELECT insert_1Mio(); (parallel select count(id) from employee; is done) CREATE OR REPLACE FUNCTION insert_some(start_i INTEGER, end_i INTEGER) RETURNS void AS $func$ DECLARE BEGIN FOR i IN start_i..end_i LOOP INSERT INTO employee (id, department, firstname, lastname) VALUES (i, i, 'John' || i, 'Smith' || i); END LOOP; END; $func$ LANGUAGE plpgsql; CREATE OR REPLACE FUNCTION insert_1Mio() RETURNS void AS $func$ DECLARE maxcommit INTEGER; start_i INTEGER; end_i INTEGER; now_i INTEGER; BEGIN maxcommit := 10000; start_i :=1; end_i := 1000000; now_i := start_i; FOR i IN start_i..end_i LOOP IF MOD(i, maxcommit) = 0 THEN PERFORM insert_some(now_i, i); now_i := i + 1; END IF; END LOOP; PERFORM insert_some(now_i, end_i); END; $func$ LANGUAGE plpgsql; Any ideas? Ciao, Gerhard -- http://www.wiesinger.com/ On Thu, 25 Dec 2008, Gerhard Wiesinger wrote: > Hello! > > I want to translate the following Oracle PL/SQL script into plpgsql. > Especially I'm having problems with the transaction thing. i tried START > TRANSACTION and COMMIT without success. > > Any ideas? > > Thanx. > > Ciao, > Gerhard > > CREATE OR REPLACE PROCEDURE insert_1Mio > IS > maxcommit NUMBER; > BEGIN > maxcommit := 10000; > > FOR i IN 1..1000000 LOOP > INSERT INTO employee (id, department, firstname, lastname) VALUES (i, i, > 'John' || to_char(i), 'Smith' || to_char(i)); > IF MOD(i, maxcommit) = 0 THEN > COMMIT; > END IF; > END LOOP; > > COMMIT; > END; > > > > -- > http://www.wiesinger.com/ > > > -- > Sent via pgsql-general mailing list (pgsql-general@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-general >
В списке pgsql-general по дате отправления: