我有两个表,主题和测验,这是它们的定义:
CREATE TABLE "theme" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , "nom" VARCHAR NOT NULL );
CREATE TABLE quiz(
id INTEGER PRIMARY KEY,
nom VARCHAR(256) NOT NULL,
theme INTEGER NOT NULL,
niveau INTEGER NOT NULL,
pass INTEGER DEFAULT 1 NOT NULL,
jok INTEGER DEFAULT 1 NOT NULL,
etat INTEGER DEFAULT 0 NOT NULL,
FOREIGN KEY (theme) REFERENCES theme(id)
);
表
theme中的字段
id
(主键)是 quiz表中的
Foreign Key
。
当我尝试在表测验中插入包含值 30 作为外键的记录时,该记录已成功插入到 quiz
表中,尽管主题表中没有带有 id = 30
的记录,我意思是,因为我有外键约束,所以不应该阻止这个插入?
您确定外键支持已启用吗?
假设库是在启用外键约束的情况下编译的, 它仍然必须由应用程序在运行时启用,使用 PRAGMAforeign_keys 命令。例如:
sqlite> PRAGMA foreign_keys = ON;