我有两个表,主题和测验,这是他们的定义:
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)
);
表主题中的字段id
(主键)是测验表中的Foreign Key
。
当我尝试在表测验中插入包含值30的记录(例如作为外键)时,记录将成功插入quiz
表中,尽管主题表中没有{{1的记录我的意思是,因为我有一个外键约束,所以不应该阻止这个插入?
答案 0 :(得分:44)
您确定foreign key support已启用吗?
假设在编译库时启用了外键约束, 它必须仍然由应用程序在运行时启用,使用 PRAGMA foreign_keys命令。例如:
sqlite> PRAGMA foreign_keys = ON;