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ですが、ので、私は間違っているのか分からない:SQLiteのROWIDを参照すると、外部キーの不一致が発生するのはなぜですか?
foo
が存在します。foo.rowid
が存在します。foo.rowid
は、foo
の主キーであり、したがって一意性に制約されます。bar.foo_rowid
は1列であり、foo.rowid
が1列であることに一致します。
そして、そのPKの名前は 'rowid'でも可能です。 –
私は、次のようなエラーがあります:_foreign key mismatch - "parent_table" _を参照する "child_table"。私はあなたが言ったが、まだ動作していない.. –
一方、 'テーブルにINTEGER PRIMARY KEY型のカラムが含まれている場合、そのカラムはhttps://www.sqliteのROWIDのエイリアスになります。 org/autoinc.html –