sqlite3“外键约束失败”

我已经设置了两个表:
CREATE TABLE A
(
    id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,name TEXT
 );

CREATE TABLE B
(
    id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,id2 INTEGER,book TEXT,FOREIGN KEY(id2) REFERENCES A(id)
);

将数据插入A后,它看起来像这样:

1    John

2    Amy

3    Peter

将数据插入B后,它看起来像这样:

1     1     Lord of the Rings

2     1     Catch 22

3     2     Sum of All Fears

4     3     Hunt for Red October

然后我执行以下语句:

delete from a where id=1;

我得到以下内容:“错误:外键约束失败”

我然后重新启动sqlite3并重试,但这次我先输入:

PRAGMA foreign_keys = 1;

它仍然无法正常工作……

表B具有行,其外键引用您尝试删除的表A行的主键值,因此删除它将违反数据库的完整性.

您可以在外键定义中包含ON DELETE CASCADE.这样,当您从表A中删除条目时,表B中链接到已删除行的任何条目也将被删除.不知道这是否适合您的申请.

相关文章

SQLite架构简单,又有Json计算能力,有时会承担Json文件/RES...
使用Python操作内置数据库SQLite以及MySQL数据库。
破解微信数据库密码,用python导出微信聊天记录
(Unity)SQLite 是一个软件库,实现了自给自足的、无服务器...
安卓开发,利用SQLite实现登陆注册功能