Re: in Pl/PgSQL, do commit every 5000 records
От | Emi Lu |
---|---|
Тема | Re: in Pl/PgSQL, do commit every 5000 records |
Дата | |
Msg-id | 4411A3EC.3080309@encs.concordia.ca обсуждение исходный текст |
Ответ на | Re: in Pl/PgSQL, do commit every 5000 records (Bruno Wolff III <bruno@wolff.to>) |
Ответы |
Re: in Pl/PgSQL, do commit every 5000 records
Re: in Pl/PgSQL, do commit every 5000 records |
Список | pgsql-general |
Hi Bruno, >You can't do commits inside of a function. > The example I have is: CREATE OR REPLACE function test() returns boolean AS $$ DECLARE ... ... counter INTEGER := 0; BEGIN ... ... query_value := ' .....' ; OPEN curs1 FOR EXECUTE query_value; LOOP FETCH curs1 INTO studid; EXIT WHEN NOT FOUND; query_value := ' INSERT INTO ... ...'; EXECUTE query_value ; counter := counter + 1 ; IF counter%5000 = 0 THEN counter := 0; COMMIT; END IF; END LOOP; CLOSE curs1; ... END; ... ... The above function works ok. "can't do commits inside of a function " , do you mean although the function complied ok and run successfully, but it did not really commit insertion actions at every 5000 records? >I think you are misremembering advice about not do inserts with a transaction per row which will have >a lot of overhead for all of the commits. >
В списке pgsql-general по дате отправления: