我从服务器的sqlite表中插入记录。它像一个魅力和记录成功插入。现在我想要的是,当用户下次启动应用程序时,它将再次插入重复记录。如何只向SQlite插入记录并忽略已存在的记录?
我想只插入新记录,如果可用并忽略已存在的记录。
db.execSQL("Insert into myTable(ProjectNo,ProjectId,ThirdParty,SealingNumber,BookNumber,SupplyType,ConsAcNo,KnoNo,MeterSrMo,ConsName,ConsAddress1,ConsAddress2,ConsAddress3,TelephoneNo, ConsMobileNo,SanctionLoad, MeterMake, MeterType, PhaseType, IsCompleted, Contractor ")) values ('" + c.getString("PROJECT_NUMBER") + "'," + c.getString("PROJECT_ID") + ",'" + c.getString("THIRD_PARTY") + "'," + c.getString("SEALING_NUMBER") + "," + c.getString("BOOK_NUMBER") + "," + c.getString("SUPPLY_TYPE") + "," + c.getString("CONS_ACCOUNT_NO") + "," + c.getString("KNO_NUMBER") + ",'" + c.getString("MTR_SERIAL_NO") + "','" + c.getString("CONS_NAME") + "','" + c.getString("CONS_ADDRESS1") + "','" + c.getString("CONS_ADDRESS2") + "','" + c.getString("CONS_ADDRESS3") + "','" + c.getString("TELEPHONE_NO") + "','" + c.getString("CONS_MOBILE_NO") + "','" + c.getString("SANCTION_LOAD") + "','" + c.getString("METER_MAKE") + "','" + c.getString("METER_TYPE") + "','" + c.getString("METER_PHASE") + "','N', '"+ c.getString("CONTRACTOR1") +"')");
我试过下面的查询但我失败了。
db.execSQL("Insert into FieldUtilityData (ProjectNo,ProjectId,ThirdParty,SealingNumber,BookNumber,SupplyType,ConsAcNo,KnoNo,MeterSrMo,ConsName,ConsAddress1,ConsAddress2,ConsAddress3,TelephoneNo, ConsMobileNo,SanctionLoad, MeterMake, MeterType, PhaseType, IsCompleted, Contractor WHERE NOT EXISTS(SELECT ConsAcNo FROM FieldUtilityData WHERE ConsAcNo = " + c.getString("CONS_ACCOUNT_NO") + ")) values ('" + c.getString("PROJECT_NUMBER") + "'," + c.getString("PROJECT_ID") + ",'" + c.getString("THIRD_PARTY") + "'," + c.getString("SEALING_NUMBER") + "," + c.getString("BOOK_NUMBER") + "," + c.getString("SUPPLY_TYPE") + "," + c.getString("CONS_ACCOUNT_NO") + "," + c.getString("KNO_NUMBER") + ",'" + c.getString("MTR_SERIAL_NO") + "','" + c.getString("CONS_NAME") + "','" + c.getString("CONS_ADDRESS1") + "','" + c.getString("CONS_ADDRESS2") + "','" + c.getString("CONS_ADDRESS3") + "','" + c.getString("TELEPHONE_NO") + "','" + c.getString("CONS_MOBILE_NO") + "','" + c.getString("SANCTION_LOAD") + "','" + c.getString("METER_MAKE") + "','" + c.getString("METER_TYPE") + "','" + c.getString("METER_PHASE") + "','N', '"+ c.getString("CONTRACTOR1") +"')");
保持一个** PRIMARY KEY **或列有** ** UNIQUE约束。在重复记录的情况下,它会抛出一个错误(_primary约束失败..._)。 –