Обсуждение: Using auto-commit OFF for transactions - instead of BEGIN

Поиск
Список
Период
Сортировка

Using auto-commit OFF for transactions - instead of BEGIN

От
Harry Mantheakis
Дата:
Hello

I ported a relatively simple application using Oracle 8i with a JDBC client
to PostgreSQL 7.4 with the same JDBC client, and everything just worked!

One thing that did come to light was that PG offers a proprietary 'BEGIN'
statement as a means of controlling transactions.

With Oracle, I was used to setting auto-commit to false at the start of a
transaction, and then calling commit or rollback at the end.

Is it safe for me to continue setting auto-commit to false for transactions,
and are there any compelling reasons - significant performance gains,
perhaps - why I might want to consider adopting PG's 'BEGIN' statement
instead?

Many thanks in anticipation.

Harry Mantheakis
London, UK


Re: Using auto-commit OFF for transactions - instead of

От
Dave Cramer
Дата:
Harry,

You should use the driver's set autocommit(false) instead, as then the
driver will know the state of the connection.

BTW, I'm sure oracle has a similiar "begin" statement.

Dave
On Mon, 2004-03-08 at 06:40, Harry Mantheakis wrote:
> Hello
>
> I ported a relatively simple application using Oracle 8i with a JDBC client
> to PostgreSQL 7.4 with the same JDBC client, and everything just worked!
>
> One thing that did come to light was that PG offers a proprietary 'BEGIN'
> statement as a means of controlling transactions.
>
> With Oracle, I was used to setting auto-commit to false at the start of a
> transaction, and then calling commit or rollback at the end.
>
> Is it safe for me to continue setting auto-commit to false for transactions,
> and are there any compelling reasons - significant performance gains,
> perhaps - why I might want to consider adopting PG's 'BEGIN' statement
> instead?
>
> Many thanks in anticipation.
>
> Harry Mantheakis
> London, UK
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>
--
Dave Cramer
519 939 0336
ICQ # 14675561


Re: Using auto-commit OFF for transactions - instead of

От
Kris Jurka
Дата:

On Mon, 8 Mar 2004, Dave Cramer wrote:

> Harry,
>
> You should use the driver's set autocommit(false) instead, as then the
> driver will know the state of the connection.
>
> BTW, I'm sure oracle has a similiar "begin" statement.
>

Oracle in fact does not have a begin statement, it does not have a native
autocommit mode, you are always in a transaction, so any commit/rollback
automatically starts a new transaction.

Kris Jurka

Re: Using auto-commit OFF for transactions - instead of BEGIN

От
Paul Thomas
Дата:
On 08/03/2004 11:40 Harry Mantheakis wrote:
> Hello
>
> I ported a relatively simple application using Oracle 8i with a JDBC
> client
> to PostgreSQL 7.4 with the same JDBC client, and everything just worked!
>
> One thing that did come to light was that PG offers a proprietary 'BEGIN'
> statement as a means of controlling transactions.
>
> With Oracle, I was used to setting auto-commit to false at the start of a
> transaction, and then calling commit or rollback at the end.
>
> Is it safe for me to continue setting auto-commit to false for
> transactions,
> and are there any compelling reasons - significant performance gains,
> perhaps - why I might want to consider adopting PG's 'BEGIN' statement
> instead?

Not only is it safe, it's the proper way to do it. FWIF, the driver
actually generates BEGIN and END commands under the covers and issueing
these yourself can potentially confuse it.

HTH


--
Paul Thomas
+------------------------------+---------------------------------------------+
| Thomas Micro Systems Limited | Software Solutions for
Business             |
| Computer Consultants         |
http://www.thomas-micro-systems-ltd.co.uk   |
+------------------------------+---------------------------------------------+