我创建了两个表:
- 项目.db
- TempItem.db
当我在Item.db表中添加第三个条目并将该条目复制到TempItem.db时,这两个表都有两个条目,这一次是在我的TempItem表中添加的重复条目。
如何防止这种情况发生?
我的源代码
// Item.db table array
for(int ip=0; ip<results.size(); ip++)
{
// TempItem.db table array
for(int ig=0; ig<resultmain.size(); ig++)
{
// Check Both database item
if((results.get(ip).item).equals(resultmain.get(ig).item))
{
Toast.makeText(getApplicationContext(), "no", 100).show();
}
else
{
mb.insertEntry(1, 1, 1, 1, "Baby", "1", "100", "100");
}
}
}
但每次都会添加重复的值。
您可以使用insertWithOnConflict
db.insertWithOnConflict(tableName, null, contentValues,SQLiteDatabase.CONFLICT_REPLACE);
实现这一点的一种方法是将表的id声明为主键或用唯一约束赋予它属性。现在,当您尝试输入重复记录时,sqlite会抛出一个异常唯一约束。