有两个表
create table A(
id integer primary key autoincrement,
subject text not null,
);
create table B(
id integer primary key autoincrement,
text integer references A(id)
on delete restrict
deferrable initially deferred
unique
);
B
表格行应与A
相关联。
所以,我将B.text
添加了一个外键给A
..
我在表A中添加了几个pk值为1和2的随机数据
现在,我尝试创建B表数据,其text
值引用5
,但A中不存在,但仍可存储..
为什么这样做以及如何解决?
答案 0 :(得分:3)
您必须启用外键支持:
PRAGMA foreign_keys=ON;
参考:http://www.sqlite.org/foreignkeys.html
示例:
sqlite> create table A(
...> id integer primary key autoincrement,
...> subject text not null
...> );
sqlite>
sqlite> create table B(
...> id integer primary key autoincrement,
...> text integer references A(id)
...> on delete restrict
...> deferrable initially deferred
...> unique
...> );
sqlite> insert into a values(1,1),(2,2);
sqlite> insert into b(text) values(3);
sqlite> pragma foreign_keys=on;
sqlite> insert into b(text) values(4);
Error: foreign key constraint failed
sqlite>