Я использую pysqlite, который по умолчанию не включает транзакционный DDL (хотя DDL является транзакционным от клиента sqlite3).
Как включить транзакционный DDL в pysqlite?
pysqlite всегда выполняет неявную фиксацию , если строка запроса в нижнем регистре не начинается с необязательного пробела и одного из аргументов «select», «insert», «update», «delete» или «replace»Нет элегантного способа выключить это.Чтобы обойти это, вы можете отредактировать исходный код pysqlite C.