【发布时间】:2013-06-04 19:58:08
【问题描述】:
SQLite version 3.7.9 2011-11-01 00:52:41
sqlite> PRAGMA foreign_keys = 1;
sqlite> CREATE TABLE foo(name);
sqlite> CREATE TABLE bar(foo_rowid REFERENCES foo(rowid));
sqlite> INSERT INTO foo VALUES('baz');
sqlite> SELECT rowid, name FROM foo;
1|baz
sqlite> INSERT INTO bar (foo_rowid) VALUES (1);
Error: foreign key mismatch
为什么会出现这个错误?这是一个DML error,但我不知道出了什么问题,因为:
-
foo存在。 -
foo.rowid存在。 -
foo.rowid是foo的主键,因此被限制为唯一性。 -
bar.foo_rowid是一列,这与foo.rowid是一列的事实相符。
【问题讨论】:
标签: sql database sqlite foreign-keys relational-database