如何处理SQLite中的“UNIQUE constraint failed”异常
问题描述:在我的应用程序中,我使用SQLite数据库作为本地数据库(主键是Reference No,这对每个记录都是唯一的)。在某些情况下,服务器会多次返回相同的记录,并希望避免向数据库中添加重复的记录。
我想处理“UNIQUE constraint failed”异常。我试过几种解决办法,但都不管用。
addNewJobs(jobs: any) {
return new Promise((resolve) => {
this.initDB().then((db) => {
db.transaction((tx) => {
tx.executeSql('INSERT INTO LI_New_Retail (' +
DBProperties.CONSTANT_TABLE_COLUMN_REFERENCE_NO + ', ' +
DBProperties.CONSTANT_TABLE_COLUMN_REQUEST_DETAILS + ', ' +
DBProperties.CONSTANT_TABLE_COLUMN_INSPECTION_HISTORY + ', ' +
DBProperties.CONSTANT_TABLE_COLUMN_LOCATION_CONFIRMATION + ', ' +
DBProperties.CONSTANT_TABLE_COLUMN_DATE_SCHEDULED + ', ' +
DBProperties.CONSTANT_TABLE_COLUMN_CHECKLIST + ', ' +
DBProperties.CONSTANT_TABLE_JSON_RESPONSE + ', ' +
DBProperties.CONSTANT_TABLE_COLUMN_UPLOADED_IMAGE_LIST
+ ') VALUES (?, ?, ?, ?, ?, ?, ?, ?)',
[jobs.referenceNumber, JSON.stringify(jobs.requestDetailsDTO),
JSON.stringify(jobs.inspectionHistoriesDtos), null,
JSON.stringify(jobs.dateScheduled),
JSON.stringify(jobs.pharmacyLocationChecklistsDTOS),
JSON.stringify(jobs), null])
.then(([tx, results]) => {
resolve(results);
}).then((result) => {
this.closeDatabase(db);
}).catch((error) => {
console.log("An error occured during data insert to db -- " + JSON.stringify(error));
this.closeDatabase(db);
}).catch((error) => {
console.log("adding new inspection jobs function error occured !!! -- " + error);
一天不写代码难受