我正在使用SQLite3,并且由于某些兼容性原因,我知道默认情况下禁用了外键支持。但是我想使用默认启用外键构建自己的SQLite3。 我查看了一些源代码(合并版本),发现了一个宏评估
#if defined(SQLITE_DEFAULT_FOREIGN_KEYS) && SQLITE_DEFAULT_FOREIGN_KEYS
| SQLITE_ForeignKeys
#endif
我尝试添加宏定义
#define SQLITE_DEFAULT_FOREIGN_KEYS 1
内部或外部
#ifndef SQLITE_OMIT_TRIGGER
#ifndef SQLITE_OMIT_FOREIGN_KE
进行构建,但没有区别,外键的默认值仍为0。
所以我的问题是:如何修改源代码以启用外键默认设置? (我知道触发起来很容易,但这是一个不同的问题。)
答案 0 :(得分:1)
...很抱歉,但是我确实成功了,并且由于我的路径设置而运行了sqlite3.exe,所以出现了问题。 修改后,
PRAGMA foreign_keys;
在sqlite shell输出1中,仍然可以触发。在默认情况下,当我尝试插入带有无效外键引用的行时,它会报告“ FOREIGN KEY约束失败”错误。