#define SQLITE_DBCONFIG_MAINDBNAME 1000 /* const char* */ #define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */ #define SQLITE_DBCONFIG_ENABLE_FKEY 1002 /* int int* */ #define SQLITE_DBCONFIG_ENABLE_TRIGGER 1003 /* int int* */ #define SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER 1004 /* int int* */ #define SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION 1005 /* int int* */ #define SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE 1006 /* int int* */ #define SQLITE_DBCONFIG_ENABLE_QPSG 1007 /* int int* */ #define SQLITE_DBCONFIG_TRIGGER_EQP 1008 /* int int* */ #define SQLITE_DBCONFIG_RESET_DATABASE 1009 /* int int* */ #define SQLITE_DBCONFIG_DEFENSIVE 1010 /* int int* */ #define SQLITE_DBCONFIG_WRITABLE_SCHEMA 1011 /* int int* */ #define SQLITE_DBCONFIG_LEGACY_ALTER_TABLE 1012 /* int int* */ #define SQLITE_DBCONFIG_DQS_DML 1013 /* int int* */ #define SQLITE_DBCONFIG_DQS_DDL 1014 /* int int* */ #define SQLITE_DBCONFIG_ENABLE_VIEW 1015 /* int int* */ #define SQLITE_DBCONFIG_LEGACY_FILE_FORMAT 1016 /* int int* */ #define SQLITE_DBCONFIG_TRUSTED_SCHEMA 1017 /* int int* */ #define SQLITE_DBCONFIG_STMT_SCANSTATUS 1018 /* int int* */ #define SQLITE_DBCONFIG_REVERSE_SCANORDER 1019 /* int int* */ #define SQLITE_DBCONFIG_MAX 1019 /* Largest DBCONFIG */
这些常量是可用的整型配置选项,可以作为第二个参数传递给 sqlite3_db_config() 接口。
SQLite 的未来版本可能会添加新的配置选项。现有的配置选项可能会被弃用。应用程序应该检查 sqlite3_db_config() 的返回值以确保调用成功。如果调用了已弃用或不支持的配置选项,sqlite3_db_config() 接口将返回非零的 错误代码。
最初,此选项禁用了所有触发器。但是,从 SQLite 版本 3.35.0 开始,即使此选项关闭,TEMP 触发器仍然允许。因此,换句话说,此选项现在只禁用主数据库模式或附加数据库模式中的触发器。
最初,此选项禁用了所有视图。但是,从 SQLite 版本 3.35.0 开始,即使此选项关闭,TEMP 视图仍然允许。因此,换句话说,此选项现在只禁用主数据库模式或附加数据库模式中的视图。
请注意,当 SQLITE_DBCONFIG_LEGACY_FILE_FORMAT 设置开启时,当尝试处理具有生成列和降序索引的表时,VACUUM 命令将失败,并出现一个难以理解的错误。这并不被视为错误,因为 SQLite 3.3.0 及更早版本不支持生成列或降序索引。