gpt4 book ai didi

sqlite - 当 PRAGMA foreign_keys=ON 时,是否允许在 sqlite 中有空外键?

转载 作者:行者123 更新时间:2023-12-03 15:59:48 24 4
gpt4 key购买 nike

根据 this除非且直到我们向架构添加适当的“NOT NULL”约束,否则允许使用空外键。

但我看到了一些不同的行为,

sqlite> PRAGMA Foreign_keys;
1
sqlite> create table proc (
sqlite> pid integer,
sqlite> name text,
sqlite> ppid integer,
sqlite> foreign key (ppid) references proc (id)
sqlite> );
sqlite> .schema proc
CREATE TABLE proc (
pid integer,
name text,
ppid integer,
foreign key (ppid) references proc (id)
);

sqlite> insert into proc (pid, name, ppid)
sqlite> values (0, "init", null);
Error: foreign key mismatch

sqlite> PRAGMA Foreign_keys=OFF;
sqlite> PRAGMA Foreign_keys;
0

sqlite> insert into proc (pid, name, ppid)
sqlite> values (0, "init", null);
sqlite> select * from proc;
0|init|

当 PRAGMA foreign_keys=ON 时,如何在 sqlite 中允许空外键?或者根本不可能?

最佳答案

  • ID 列名为 pid ,不是 id .
  • 父键列必须有 UNIQUEPRIMARY KEY约束。
  • 关于sqlite - 当 PRAGMA foreign_keys=ON 时,是否允许在 sqlite 中有空外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16304971/

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