このnull 外部キーによると、適切な "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|
PRAGMAforeign_keys=ONのときにsqliteでnull外部キーを許可するにはどうすればよいですか? またはそれはまったく不可能ですか?