Python sqlite3 Rollback без "BEGIN"
Есть такой код, который подсоединяется к базе, и выполняет запросы, которые лежат в "zapros.sql". Там находятся запросы на создание таблиц и добавление в них данных. Когда возникнет ошибка, нужно чтобы срабатывала отмена всех предыдущих записей. В данном коде Rollback срабатывает только тогда, когда я иду в файл zapros.sql, и ввожу там вначале "BEGIN;". Как обойти это проблему?
conn = None
try:
conn = sqlite3.connect('E:\wsql\db.db')
cur = conn.cursor()
sql_file = open('E:\wsql\zapros.sql')
sql_as_string = sql_file.read()
cur.executescript(sql_as_string)
conn.commit()
except sqlite3.Error as e:
if conn: conn.rollback()
print(e)
finally:
conn: conn.close()
Ответы (1 шт):
Автор решения: eri
→ Ссылка
rollback не нужен. sqlite3 не запишет данные если при executescript была ошибка потому как до строчки commit не дойдет.