SQLite是否支持参照完整性?

myn*_*ynk 4 sqlite django referential-integrity django-models

我有一个配置为使用SQLite的Django Web服务器.

在多对多关系中(使用额外字段),Django强迫我使用关系模型来建立两个对象之间的关系.但是我能够在相关表中尚不存在的对象之间创建关系.

例如:

I have table1 and table2 which are related via table12.
In table1, there is just one object called A.
In table2, there is just one object called X.
I can create a record in table12 that depict a relationship between A & Y; even though Y doesn't exist in table2.
Run Code Online (Sandbox Code Playgroud)

我的关系模型已经适当地标记了外键.

Joh*_*uhn 11

SQLite 默认情况下不强制执行外键约束(主要是向后兼容).

要启用它,您必须执行

PRAGMA foreign_keys = 1
Run Code Online (Sandbox Code Playgroud)

连接到数据库后.

有关PRAGMA foreign_keys详细信息,请参阅手册.

  • 一个稍微好一点的变体是'PRAGMA foreign_keys = ON`而不是`1` (2认同)