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 не дойдет.

→ Ссылка