【发布时间】:2016-12-17 14:34:14
【问题描述】:
我的 SQLite 数据库有一点问题,尤其是以下表格:
CREATE TABLE foo (
key INTEGER PRIMARY KEY,
name TEXT NOT NULL
);
CREATE TABLE bar (
_id INTEGER PRIMARY KEY,
key INTEGER NOT NULL,
what TEXT NOT NULL,
else TEXT,
FOREIGN KEY (key) REFERENCES foo (key) DEFERRABLE INITIALLY DEFERRED
);
如果我以正确的方式理解 SQLite 文档,尝试在 bar 中插入与 foo 表中的任何行都不对应的行应该会失败并出现错误或其他问题。
不幸的是,即使foo 中不存在密钥 42,以下命令仍然有效:
INSERT INTO bar (key, what, else) VALUES (42, "something", "else");
这将在bar 中创建一个具有给定值(键 = 42)的行,而 foo 中不存在具有键 42 的行。
是我还是这里出了什么问题?
【问题讨论】:
-
你设置了pragma
PRAGMA foreign_keys = ON
标签: sqlite