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 по дате отправления: