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

时间:2016-06-13 06:00:42

标签: android sql sqlite

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

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的数据,如果它不存在于db中则创建

4 个答案:

答案 0 :(得分:1)

您可以将方法insertWithOnConflictCONFLICT_REPLACE常量一样使用,

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

 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
 }

答案 3 :(得分:0)

您可以使用替换 命令而不是插入命令。 它适用于mysql。