加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

sqlite – 外键约束不起作用

发布时间:2020-12-12 19:14:00 所属栏目:百科 来源:网络整理
导读:我有两张桌子,主题和测验,这里是他们的定义: 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 I
我有两张桌子,主题和测验,这里是他们的定义:
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(主键)是测验表中的外键。
当我尝试在包含值30的表格测验中插入记录,例如作为外键时,尽管在id = 30的主题表中没有记录,但记录已成功插入到测验表中,我的意思是,不应该阻止这个插入,因为我有一个外键约束?

您确定启用了 foreign key support吗?

Assuming the library is compiled with foreign key constraints enabled,
it must still be enabled by the application at runtime,using the
PRAGMA foreign_keys command. For example:

sqlite> PRAGMA foreign_keys = ON;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读