gpt4 book ai didi

database - 如何在sqlite中添加外键关系

转载 作者:搜寻专家 更新时间:2023-10-30 20:18:28 25 4
gpt4 key购买 nike

有两个表

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.textA 的外键..

我在表 A 中添加了一些 pk 值为 1 和 2 的随机数据现在,我尝试使用引用 5text 值创建 B 表数据,该值在 A 中不存在,但它仍然可以存储..

为什么这行得通以及如何解决?

最佳答案

您必须启用外键支持:

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>

关于database - 如何在sqlite中添加外键关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20451472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com