我正在按照http://www.sqlite.org/foreignkeys.html上SQLite文档中的说明进行操作,但是我尝试添加外键失败。这是我的创建语句:
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 );
第一张桌子做得很好。该错误发生在第二条语句中。我已经尝试过将两个查询包装在事务中而没有包装。这是错误:
外键定义(代码1)中的未知列“ checklist_id”:,正在编译:CREATE TABLE项(_id INTEGER主键自动增加,外键(checklist_id)参考核对清单(_id),item_text TEXT,item_hint TEXT,item_order INTEGER,created_on INTEGER ,modified_on INTEGER)
checklist_id INTEGER在将其添加为外键之前,您仍然必须先创建该列。
checklist_id INTEGER
因此它将是:
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) );