我已经设置了两个表:
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中链接到已删除行的任何条目也将被删除.不知道这是否适合您的申请.
原文地址:https://www.jb51.cc/sqlite/197662.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。