具有永久效果的 PRAGMA
大多数 PRAGMA 语句仅影响当前数据库连接,这意味着每次打开数据库时都必须重新应用它们。
但是,以下 PRAGMA 会写入数据库文件,并且可以随时执行(但在某些情况下,不在事务内部):
以下 PRAGMA 设置设置了数据库文件的属性,这些属性在创建后无法更改,因此必须在第一次实际写入数据库之前执行它们:
- auto_vacuum (也可以在 VACUUM 之前更改 )
- 编码
- legacy_file_format
- page_size (也可以在 VACUUM 之前更改 )
例如:
-- open a connection to a not-yet-existing DB file
PRAGMA page_size = 4096;
PRAGMA auto_vacuum = INCREMENTAL;
CREATE TABLE t(x); -- database is created here, with the above settings