psycopg3 transactions
От | Paolo De Stefani |
---|---|
Тема | psycopg3 transactions |
Дата | |
Msg-id | eb5cc5d20c520e32b5963a4044b70af1@paolodestefani.it обсуждение исходный текст |
Ответы |
Re: psycopg3 transactions
|
Список | psycopg |
Hi all In psycopg3 i read and understood the new transaction management behaviour. With the use of context managers i have to do something like this: con = psycopg.connect() with con.transaction(): with con.cursor() as cur: cur.execute("INSERT INTO table VALUES (1, 2, 3);") and this works as expected. But if i don't need a transaction because i don't need to commit anything i can do something like this: with con.cursor() as cur: cur.execute("SELECT * FROM table;") BUT if a do a select without a transaction the next command that require a transaction don't works until i do a specific commit with con.transaction(): with con.cursor() as cur: cur.execute("DELETE FROM table;") the delete is effective only for the current connection, i mean other db user continue to see the <table> without the delete command modifications Looks like the previous select statement (uncommited) block following delete statement even if i use the with con.transaction() statement. If a do a con.commit() everything works as expected. That means i need to use a transaction even for a select statement. I can't use autocommit connection in my application. Is it correct or am i losing anything ??? -- Paolo De Stefani
В списке psycopg по дате отправления: