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 of foo
and therefore constrained to uniqueness.
bar.foo_rowid
is one column, which matches the fact that foo.rowid
is one column.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…