使用 SQlite,如何显示当前的 PRAGMA 设置?

Posted

技术标签:

【中文标题】使用 SQlite,如何显示当前的 PRAGMA 设置?【英文标题】:With SQlite, how do you show current PRAGMA settings? 【发布时间】:2011-05-30 09:43:09 【问题描述】:

在设置它们时,它们是持久的,还是需要在每个查询中设置?

克里斯

【问题讨论】:

【参考方案1】:

在最简单的形式中,可以通过简单地执行语法为PRAGMA <command> 的sql 语句来获得当前的pragma 设置。例如,在 php 中使用 PDO 进行调试时,您可以这样做:

$db = new PDO("sqlite: myDb.sqlite");
$synchronous = $db->query("PRAGMA synchronous")->fetchColumn();

要设置值,请使用PRAGMA <command> = <value>。但是,不会有返回值(所以不要理会fetching 任何东西)。

$db->query("PRAGMA synchronous = OFF");

关于命令是否持久的第二个问题,正如turlando所说,没有一般的答案,因为它取决于发出哪个PRAGMA语句。只需检查the sqlite pragma docs 即可确定。如果您不确定,只需使用上面的代码检查您的设置是否保持不变。

【讨论】:

以上是关于使用 SQlite,如何显示当前的 PRAGMA 设置?的主要内容,如果未能解决你的问题,请参考以下文章

不要通过 QSqlQuery 获得所有 sqlite pragma 的结果

如何使用 #pragma 和 gcc 选择性地禁用 -Werror

sqlite命令查看数据库当前版本号

Massive.Sqlite.cs -- 原型失败,因为没有 COLUMN_NAME;修复使用 PRAGMA table_info?

SQLite pragma 命令中的 Android Studio 标记错误,<pragma value> 应为“ON”

为啥 SQLite pragma foreign_keys 在数据库连接中不持久?