为什么SQLite没有强制执行以下外键约束(尽管执行正常)?我该如何处理强制关系?
CREATE TABLE User ( UserID TEXT Unique NOT NULL PRIMARY KEY, FirstName TEXT NOT NULL, LastName TEXT NOT NULL, Username TEXT NOT NULL, Password TEXT NOT NULL, Email TEXT NOT NULL, SignupDate TEXT NOT NULL ) CREATE TABLE Category ( CategoryID TEXT Unique NOT NULL PRIMARY KEY, UserID TEXT, FOREIGN KEY(UserID) REFERENCES User(UserID) )
Alex Martell.. 18
正如相关文档所述(在第2节中启用外键支持):
假设在使用外键约束的情况下编译库,应用程序必须在运行时使用PRAGMA foreign_keys命令启用它.例如:
sqlite> PRAGMA foreign_keys = ON;
默认情况下禁用外键约束(为了向后兼容),因此必须分别为每个数据库连接单独启用.
你PRAGMA
在相关的连接中使用过它吗?(假设,正如文档所说,sqlite被正确编译,当然也是最近提供外键约束实施的版本).
正如相关文档所述(在第2节中启用外键支持):
假设在使用外键约束的情况下编译库,应用程序必须在运行时使用PRAGMA foreign_keys命令启用它.例如:
sqlite> PRAGMA foreign_keys = ON;
默认情况下禁用外键约束(为了向后兼容),因此必须分别为每个数据库连接单独启用.
你PRAGMA
在相关的连接中使用过它吗?(假设,正如文档所说,sqlite被正确编译,当然也是最近提供外键约束实施的版本).