我为我的Android应用程序创建了一个sqlite表,这个表有5列多行,列为:_id,column1,column2,column3,column4。
我想删除一个特定的记录,例如存储在column3中的对应于_id的记录(在另一个类中是getter和setter,为此我将这个类命名为" TableHandler" )
我想我有点困惑,以下是我的计划,但是对于第3列,我不确定应该是什么参数,我只想删除对应于该列位置的任何内容_id
public void deleteValueColumn3(TableHandler value){
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_NAME, KEY_ID + " = ? AND " + KEY_COLUMN3 + " = ?",
new String[] {String.valueOf(value.getID()), ?????????);
db.close();
}
????????是因为我被困在那里,也许整个方法需要重写,我很感激你的意见。
由于
答案 0 :(得分:1)
如果要删除整个记录,只需在delete方法中使用记录的_id,因为这是表的主键,因此是唯一的。如果你想保留记录,你总是使用SQLiteDatabase.update方法,指定null作为将取代column3值的新值;检查column3声明没有NOT NULL标记,否则很容易引发异常。
答案 1 :(得分:0)
SQLite
不允许您删除特定行的列。
您只能删除数据的ROWS(删除列_ID = 1的行)。
Here是关于SQL
的快速教程。
答案 2 :(得分:0)
如何使用null
值更新该列,而不是使用delete()
?
ContentValues cv = new ContentValues();
cv.putNull(KEY_COLUMN3);
db.getWritableDatabase().update(
TABLE_NAME,
cv,
KEY_ID + "=?",
new String[]{String.valueOf(keyIdValue)});