Thread: Transaction within plpgsql
I am coding a procedure to purge data from a table. I want to commit the data I'm purging at intervals (for example, every 1000 rows). The problem I'm encountering is that when I have
begin transaction;
commit;
statements in my plpgsql function it doesn't compile.
How can you explicitly create transactions within a plpgsql function?
Thanks,
Jed.
Walker, Jed S wrote: > I am coding a procedure to purge data from a table. I want to commit the > data I'm purging at intervals (for example, every 1000 rows). The > problem I'm encountering is that when I have > > begin transaction; > commit; > > statements in my plpgsql function it doesn't compile. > > How can you explicitly create transactions within a plpgsql function? No, you can not, sorry, but you might as well just do the entire thing in the single transaction of the function. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073
Bruce Momjian <pgman@candle.pha.pa.us> schrieb: > Walker, Jed S wrote: > > I am coding a procedure to purge data from a table. I want to commit the > > data I'm purging at intervals (for example, every 1000 rows). The > > problem I'm encountering is that when I have > > > > begin transaction; > > commit; > > > > statements in my plpgsql function it doesn't compile. > > > > How can you explicitly create transactions within a plpgsql function? > > No, you can not, sorry, but you might as well just do the entire thing > in the single transaction of the function. Hi Bruce, I think, he can use savepoints within the procedure. http://www.postgresql.org/docs/8.0/static/sql-savepoint.html But, the whole procedure is one transaction. I'm right? Regards, Andreas -- Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect. (Linus Torvalds) Kaufbach, Saxony, Germany, Europe. N 51.05082°, E 13.56889°
Kretschmer Andreas wrote: > Bruce Momjian <pgman@candle.pha.pa.us> schrieb: > > > Walker, Jed S wrote: > > > I am coding a procedure to purge data from a table. I want to commit the > > > data I'm purging at intervals (for example, every 1000 rows). The > > > problem I'm encountering is that when I have > > > > > > begin transaction; > > > commit; > > > > > > statements in my plpgsql function it doesn't compile. > > > > > > How can you explicitly create transactions within a plpgsql function? > > > > No, you can not, sorry, but you might as well just do the entire thing > > in the single transaction of the function. > > Hi Bruce, > > I think, he can use savepoints within the procedure. > http://www.postgresql.org/docs/8.0/static/sql-savepoint.html > But, the whole procedure is one transaction. > > I'm right? Right, he can use savepoints, for sure. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073