在我的android应用程序中,我的计划是使用SQLiteDatabas
对象运行一堆插入语句。
我想要的是当insert语句违反唯一约束时,我可以知道错误发生在哪个insert语句中,而insert语句不会影响DB
。
有人知道怎么做吗?我看到了insertWithOnConflict
和insertOrThrow
方法。当发生唯一约束违规时,我能否知道第一种方法?
答案 0 :(得分:1)
我想要的是当insert语句违反唯一约束时,我可以知道错误发生在哪个insert语句中,而insert语句不会影响DB。
如果INSERT
语句违反了唯一约束,则根据定义它不会影响数据库。它会抛出一个SQLiteException
。如果您需要具体了解哪个INSERT
违反了约束条件,请一次执行一条约束,包含在您自己的交易中(beginTransaction()
,setTransactionSuccessful()
,endTransaction()
)。