Re: what happens if a failed transaction is not rolled back?

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: what happens if a failed transaction is not rolled back?
Дата
Msg-id 89614320-852e-ce8d-7b01-2eff0e537e09@aklaver.com
обсуждение исходный текст
Ответ на Re: what happens if a failed transaction is not rolled back?  (Adrian Klaver <adrian.klaver@aklaver.com>)
Список pgsql-general
On 4/24/23 08:43, Adrian Klaver wrote:
> On 4/24/23 08:37, Siddharth Jain wrote:
>> Hi All,
>>
>> i understand when writing application code, we should rollback a 
>> transaction that fails to commit. this is typically done in the catch 
>> block of a try-catch exception handler. but what if the developer does 
>> not rollback the transaction? what happens in that case?
>>
>> note that i am not asking: what happens if a transaction is not rolled 
>> back?
>> i am asking: what happens if a /failed/ transaction is not rolled back?
>>
>> failed transaction = you try to commit it but get an exception back 
>> from the database.
> 
> In Python:
> 
> import psycopg2
> con = psycopg2.connect("dbname=test host=localhost  user=postgres")
> cur = con.cursor()
> cur.execute("select 1/0")
> DivisionByZero: division by zero
> 
> cur.execute("select 1")
> InFailedSqlTransaction: current transaction is aborted, commands ignored 
> until end of transaction block

Forgot to add.

To get past above:

con.rollback()
cur.execute("select 1")

> 
> 
> 
>>
>> thanks.
>>
>> S.
> 

-- 
Adrian Klaver
adrian.klaver@aklaver.com




В списке pgsql-general по дате отправления:

Предыдущее
От: Adrian Klaver
Дата:
Сообщение: Re: what happens if a failed transaction is not rolled back?
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: what happens if a failed transaction is not rolled back?