我只是在自学 sqlite,所以foreign_key
当我能够删除父条目时,我很惊讶地看到我的约束不起作用。然后,我在阅读更多内容后了解到,每个会话的 pragma for 默认情况下foreign_key
。off
似乎很奇怪,没有一个资源文件(例如 vi 的 .exrc 之类的东西)可用于默认情况下为每个会话设置 pragma,但很好。所以我必须重新编译 sqlite3 或者每次都设置它。
无论如何,我的问题是,在我删除父项后,有没有办法对外键约束进行后期完整性检查?即,如果您在插入或删除等时打开了编译指示,只需告诉 sqlite 运行它最初运行时运行的相同逻辑吗?
我看到了一个编译指示integrity_check
,但这似乎只是在寻找腐败。
谢谢,贾斯汀