如何建立外键默认启用的sqlite?

时间:2018-12-06 14:33:11

标签: sqlite foreign-keys

我正在使用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。

所以我的问题是:如何修改源代码以启用外键默认设置? (我知道触发起来很容易,但这是一个不同的问题。)

1 个答案:

答案 0 :(得分:1)

...很抱歉,但是我确实成功了,并且由于我的路径设置而运行了sqlite3.exe,所以出现了问题。 修改后,

PRAGMA foreign_keys;
在sqlite shell输出1中,

仍然可以触发。在默认情况下,当我尝试插入带有无效外键引用的行时,它会报告“ FOREIGN KEY约束失败”错误。