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)
)
谢谢你这么多的迅速回应。我从来没有注意到在文档中(下次看起来会更困难)。刚刚试图运行该命令,我收到以下错误:“SQLite准备()失败。错误:授权被拒绝细节:未授权EXPRESSION:PRAGMA foreign_keys = ON;” 我假设他们正在使用的版本不支持它或已禁用功能。我可以使用触发器创建相同的最终结果吗?如果有的话,请为SQLITE提供一些示例触发器语法? – 2010-06-11 04:48:55
@Maxim,我相信sqlite外键触发器需要与普通的旧外键完全相同的底层功能(通常在sqlite的嵌入式构建中被删除,它们希望比他们想要提供的“完全相关的ACID功能”更小且更快实质性能和足迹成本)。 – 2010-06-11 04:54:31