只是想知道像foreign_keys = OFF和VACUUM这样的编译指示符是否会在包含在事务中并回滚的情况下被撤消。
在线文档似乎没有涵盖这个问题...
在线文档似乎没有涵盖这个问题...
文档没有涵盖事务内发出的pragma语句通常会发生什么,但它确实涵盖了foreign_keys(以及可能是其他)的主题:
在事务中,此pragma不起作用;只有在没有挂起的BEGIN或SAVEPOINT时才能启用或禁用外键约束执行。
VACUUM不是一个pragma,而且文档确实涵盖了事务:
如果存在打开的事务或者运行时有一个或多个活动SQL语句,则VACUUM将失败。
我可以验证的是,在事务中至少以下PRAGMA是无效的:
PRAGMA journal_mode=WAL;
SQL逻辑错误:无法在事务内部从非wal模式切换到wal模式