私は外部キーのすべての以前の問題を読みました。私はすべての可能な設定をしましたが、動作させることはできません。 タイプテーブルにレコードがなくてもノードテーブルに挿入できます。しかし、私が知っているように、外部キー制約は、これが起こることを許すべきではありません。Sqliteの外部キーが機能しません
CREATE TABLE nodes(
id int NOT NULL PRIMARY KEY ,
ver int NOT NULL,
lock int NOT NULL,
title varchar(50) NOT NULL,
typeid int NOT NULL REFERENCES types(id),
desc text NOT NULL,
CHECK(trim(id) <> '' AND trim(ver) <> '' AND trim(lock) <>'' AND trim(title)
<> '' AND trim(typeid) <> '' AND trim(desc) <> '')
)
と
CREATE TABLE "types"
("id" INTEGER PRIMARY KEY NOT NULL ,
"name" TEXT NOT NULL)
SQLiteの3.19.3
sqlite> PRAGMA foreign_keys;
foreign_keys
------------
1
sqlite> PRAGMA foreign_keys_list;
sqlite>
PRAGMA foreign_keys_list
答えが空である理由を私は知りません。
私は私のコマンドで
正しいをs
を使用するので解決される。PRAGMA foreign_key_list(nodes)
sqlite> PRAGMA foreign_key_list(nodes);
id seq table from to on_update on_delete match
---------- ---------- ---------- ---------- ---------- ---------- -------- ------------
0 0 types typeid id NO ACTION NO ACTION NONE
グーグルの 'sqliteプラグマの外部キーリスト'は何をしましたか? – philipxy
私は外部キーを表示するはずですが、結果は空です。私は自分のノードテーブルに外部キーを定義します。 – AEF
私のエラー、私は間違っています。 – philipxy