sqlite3“外键约束失败”
发布时间:2020-12-12 19:06:24 所属栏目:百科 来源:网络整理
导读:我已经设置了两个表: 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后,它看起来像
我已经设置了两个表:
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中链接到已删除行的任何条目也将被删除.不知道这是否适合您的申请. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |