Sqlite 外键约束不存在';行不通

Sqlite 外键约束不存在';行不通,sqlite,sqlitemanager,Sqlite,Sqlitemanager,我有两个表格,主题和测验,以下是它们的定义: 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 INTE

我有两个表格,主题测验,以下是它们的定义:

    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
(主键)是测验表中的
外键。
当我尝试在表quick中插入一条包含值30的记录(例如作为外键)时,该记录成功地插入到
quick
表中,尽管主题表中没有id=30的记录,我的意思是,因为我有外键约束,所以不应该阻止此插入?

您确定已启用吗

假设库是在启用外键约束的情况下编译的, 应用程序仍必须在运行时使用 PRAGMA外键命令。例如:


你使用哪个sqlite版本?你救了我,我必须启用它:
PRAGMA foreign\u keys=ON
对于那些正在寻找如何启用外键支持的人,您需要将连接字符串更改为“数据源=C:\Dbs\myDb.db;外键=true;”(用sqlite数据库替换C:\Dbs\myDb.db)。原职:
sqlite> PRAGMA foreign_keys = ON;