我有一张桌子
CREATE TABLE top_items (
_id INTEGER PRIMARY KEY
NOT NULL,
FOREIGN KEY(_id) REFERENCES items ( _id )
);
当我尝试在insert
对象上执行SQLiteDatabase
时,items
表中不存在的ID成功完成。
SQLiteDatabase db = new DbOpenHelper(mContext).getWritableDatabase();
long rowId = db.insert(Contract.TopItems.TABLE_NAME, null, makeTopItemValues(1001));
assertTrue(rowId == -1);
我希望它因FOREIGN KEY(_id)
约束而失败。
我错过了什么?
P.S。当我在非Android环境中启动时,插入查询失败。
答案 0 :(得分:0)
您需要使用
启用外键约束检查PRAGMA foreign_keys=ON;
使用execSQL()
执行编译指示。