为什么默认情况下sqlite中禁用了约束


Why are constraints disabled in sqlite by default?

您必须运行PRAGMA foreign_keys = ON才能启用它。

为什么?是因为这个特性在sqlite中有缺陷吗?我这么问是因为我遇到了数据完整性方面的问题。我有时会在不该发生的时候出现"违反完整性约束"的错误。

来自文档:

默认情况下禁用外键约束(用于向后兼容性),因此必须为每个数据库单独启用单独连接。

它没有bug。只是许多用户不需要严格的约束。SQLite是中测试最多的软件之一