如何在SQLite中插入检查条目是否退出,如果存在,请更新它,如果不存在,则插入



这是我在数据库中插入数组数据的创建函数。数据从服务器获取并插入数据库。

public long createEmployee_New(ArrayList<Customer> aCustomer) {
        long row_id = 0;
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        for(int i = 0;i<aCustomer.size();i++) {
            Customer employee = new Customer();
            employee = aCustomer.get(i);
            values.put(EMP_ID, employee.getEmpID());
            values.put(EMP_TYPE, employee.getEmpType());
            values.put(EMP_CITY, employee.getEmpCity());
            values.put(EMP_NAME, employee.getEmpName());
            values.put(EMP_CONTACT_PERSON, employee.getEmpContactPersonName());
            values.put(EMP_CONTACT, employee.getEmpContactNo());
            values.put(EMP_ADD, employee.getEmpAddress());
            values.put(EMP_STATE, employee.getEmpState());
            values.put(EMP_DELSTATE, employee.getEmpDelState());
            values.put(CUSTOMER_LANDLINE, employee.getCustomer_landline());
            values.put(CUST_COMPANY_ID, employee.getCust_companyID());
            values.put(CUSTOMER_EMAIL_ID,employee.getCust_emailID());
            values.put(PRICE_LIST_ID_FK,employee.getPRICE_LIST_ID_FK());
            row_id = db.insert(TABLE_EMPLOYEE, null, values);
        }
        db.close();
        return row_id;
    }

如果存在,我如何检查唯一 empid 是否退出表中,然后更新该特定 empid 的数据,如果数据库中不存在,则创建

对于更新和插入数据,您还可以使用以下方法

mDatabase.insertWithOnConflict(TABLE_EMPLOYEE, null, values,
                SQLiteDatabase.CONFLICT_REPLACE);

您可以使用insertWithOnConflict常量CONFLICT_REPLACE的方法,例如,

db.insertWithOnConflict(TABLE_EMPLOYEE, null, values, SQLiteDatabase.CONFLICT_REPLACE);
 Cursor cursor = null;
 String idValue="5"; //the employee id which you want to insert 
 String sql ="SELECT EMP_ID FROM "+TableName+" WHERE EMP_ID="+ idValue; 
 cursor= db.rawQuery(sql,null);
 Log("Cursor Count : " + cursor.getCount());
 if(cursor.getCount()>0){
  // employee ID Found put update query here
 }else{
 //employee ID Not Found  put insert query here
 }

您可以使用 replace into命令,而不是插入到命令中。它适用于mysql。

最新更新