replace语句仅插入特定列

时间:2019-04-10 07:01:55

标签: android sqlite replace insert

我正在尝试使用replace语句,但仅用于替换特定列中的数据,但是我正在使用的查询正在替换所有列中的值。

public boolean insertDataTable(String FileNumber, String Areas, String Level, String ProjectCode, String Year, String Department, String University, String Address, String City, String State, String Region, String UserId) {

        SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();

        String query = " REPLACE INTO DataTable (FileNumber, Areas, Level, ProjectCode, Year, Department, University, Address, City, State, Region, UserId) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)";

        sqLiteDatabase.execSQL(query,new String[]{FileNumber, Areas, Level, ProjectCode, Year, Department, University, Address, City, State, Region, UserId});
        sqLiteDatabase.close();
        return true;
    }

我有13列的表格,我试图不更新最后一列的值。这是我正在使用的代码。

1 个答案:

答案 0 :(得分:0)

我认为您误解了REPLACE语句的目的。
它与UPDATE不同。
阅读上面的链接,您将看到REPLACE

  

插入新行或删除与新行冲突的行   然后添加新行。


我相信您真正想要的是更新表中的一行。这样做:

String query = "UPDATE DataTable SET " + 
"FileNumber = ?, Areas = ?, Level = ?, ProjectCode = ?, Year = ?, Department = ?, " +
"University = ?, Address = ?, City = ?, State = ?, Region = ?, UserId = ? " +
"WHERE ......";

在语句末尾使用WHERE子句来指定要更新的行,否则表的所有行将被更新。