¿Por qué hacer referencia a un rowid de SQLite causa una discrepancia de clave externa?
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
¿Por qué se produce este error? Es unError DML, pero no sé qué está mal porque:
foo
existefoo.rowid
existefoo.rowid
es la clave principal defoo
y por lo tanto restringido a la singularidad.bar.foo_rowid
es una columna, que coincide con el hecho de quefoo.rowid
es una columna