Clave externa SQLite

Estoy siguiendo las instrucciones de la documentation de SQLite en http://www.sqlite.org/foreignkeys.html, pero mi bash de agregar una key foránea está fallando. Aquí están mis declaraciones de creación:

CREATE TABLE checklist ( _id INTEGER PRIMARY KEY AUTOINCREMENT, checklist_title TEXT, description TEXT, created_on INTEGER, modified_on INTEGER ); CREATE TABLE item ( _id INTEGER PRIMARY KEY AUTOINCREMENT, FOREIGN KEY(checklist_id) REFERENCES checklist(_id), item_text TEXT, item_hint TEXT, item_order INTEGER, created_on INTEGER, modified_on INTEGER ); 

La primera table está bien. El error ocurre en la segunda statement. He intentado tanto con envolver las dos consultas en una transacción como sin ella. Aquí está el error:

columna desconocida "checklist_id" en la definición de key externa (código 1):, al comstackr: elemento CREATE TABLE (_id INTEGER PRIMARY KEY AUTOINCREMENT, FOREIGN KEY (checklist_id) REFERENCES checklist (_id), item_text TEXT, item_hint TEXT, item_order INTEGER, created_on INTEGER , modified_on INTEGER)

Aún debe crear la columna antes de agregarla como key externa.

Entonces sería:

 CREATE TABLE checklist ( _id INTEGER PRIMARY KEY AUTOINCREMENT, checklist_title TEXT, description TEXT, created_on INTEGER, modified_on INTEGER ); CREATE TABLE item ( _id INTEGER PRIMARY KEY AUTOINCREMENT, checklist_id INTEGER, item_text TEXT, item_hint TEXT, item_order INTEGER, created_on INTEGER, modified_on INTEGER, FOREIGN KEY(checklist_id) REFERENCES checklist(_id) ); 

Simplemente te falta la columna checklist_id en tu tabla de artículos . Debe declararlo antes de configurarlo como FOREIGN KEY . Intentó crear FK en una columna no existente y esta es la razón por la que no funciona.

Entonces necesitas agregar esto:

 checklist_id INTEGER, FOREIGN KEY(checklist_id) REFERENCES checklist(_id) 

ahora debería funcionar

Debe include el nombre de la columna antes de envolverlo con FOREIGN KEY ().

 CREATE TABLE item ( _id INTEGER PRIMARY KEY AUTOINCREMENT, checklist_id INTEGER, FOREIGN KEY(checklist_id) REFERENCES checklist(_id), item_text TEXT, item_hint TEXT, item_order INTEGER, created_on INTEGER, modified_on INTEGER ); 

Coloque la definición FOREIGN KEY al final de la instrucción SQL