【问题标题】:Using sqlite pragma statements to configure database?使用 sqlite pragma 语句配置数据库?
【发布时间】:2011-04-10 15:46:45
【问题描述】:

我在我的项目中执行 foreign_key pragma 语句时遇到问题。目前我已将其写入程序中。

SQLiteStatement pragma = db.compileStatement("PRAGMA foreign_key = ON;");

pragma.execute;

这些语句是在创建数据库后执行的,从那时起创建表,一切正常。

问题是当我使用 sqlite3 调试数据库时,我在 sqlite3 中执行 (pragma foreign_key;) 语句,它总是显示 foreign_keys 已关闭,除非我在调试期间明确启用它。

所以我的问题是如何在我的应用程序中执行 PRAGMA 语句?

仅供参考,sqlite 版本是 3.6.22,默认情况下关闭外键,但没有定义省略外键或省略触发器。而且我知道我需要定义触发器来强制执行外键约束。虽然我确实想知道为什么。

【问题讨论】:

    标签: sqlite


    【解决方案1】:

    foreign_keys pragma 设置会话变量;它不是数据库架构的一部分。每个“连接”默认关闭,如果要开启,则需要为每个连接开启。

    【讨论】:

    • +1:在 SQLite 的未来版本中,它可能会更改为默认开启,但由于向后兼容的原因,目前它已关闭。
    猜你喜欢
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    • 2012-04-15
    • 2017-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多