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
Why does this error occur? It is a DML error, but I don't know what's wrong because:
foo
exists.foo.rowid
exists.foo.rowid
is the primary key offoo
and therefore constrained to uniqueness.bar.foo_rowid
is one column, which matches the fact thatfoo.rowid
is one column.
rowid
. – Litt