On 28 Feb 2017, at 12:19am, James K. Lowden <jklow...@schemamania.org> wrote:
> sqlite> create table A(a, b, primary key (a,b)); > sqlite> create table C(c references A(a)); The reference column(s) (the column(s) in the 'parent' table) must be UNIQUE otherwise you may have two rows in that table which both look like they may be the parent. So you need a UNIQUE index on the reference column(s). Of course, if they’re the primary key then they already have a UNIQUE index, since the primary key of a table must be unique and SQLite automatically makes an index to enforce that. So try instead create table A(a, b, primary key (a,b)); CREATE UNIQUE INDEX A_a ON A (a); create table C(c references A(a)); A way to have this index automatically created is to put a UNIQUE requirement on that column: create table A(a, b, primary key (a UNIQUE,b)); create table C(c references A(a)); This is documented in section 3 of <https://www.sqlite.org/foreignkeys.html> Simon. _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users