Sql 从数据库中删除一行
我在删除一行时遇到问题。我可以插入和删除整个表。为了只删除一行,我不能理解整个ID,我在看一些示例,但我看不懂。这让我抓狂,任何帮助都将不胜感激。 这里是sqlite类Sql 从数据库中删除一行,sql,delete-row,Sql,Delete Row,我在删除一行时遇到问题。我可以插入和删除整个表。为了只删除一行,我不能理解整个ID,我在看一些示例,但我看不懂。这让我抓狂,任何帮助都将不胜感激。 这里是sqlite类 public class datahelper { private static final String DATABASE_NAME = "table.db"; private static final int DATABASE_VERSION = 1; private static final String
public class datahelper {
private static final String DATABASE_NAME = "table.db";
private static final int DATABASE_VERSION = 1;
private static final String TABLE_NAME = "table1";
private Context context;
private SQLiteDatabase db;
private SQLiteStatement insertStmt;
private static final String INSERT =
"insert into " + TABLE_NAME + "(name) values (?)";
public datahelper(Context context) {
this.context = context;
OpenHelper openHelper = new OpenHelper(this.context);
this.db = openHelper.getWritableDatabase();
this.insertStmt = this.db.compileStatement(INSERT);
}
public long insert(String name) {
this.insertStmt.bindString(1, name);
return this.insertStmt.executeInsert();
}
public long insert2(String name) {
this.insertStmt2.bindString(1, name);
return this.insertStmt2.executeInsert();
}
public void deleteAll() {
this.db.delete(TABLE_NAME, null, null);
}
private static class OpenHelper extends SQLiteOpenHelper {
OpenHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_NAME +
" (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)");
}
}
执行查询
DELETE FROM TABLE_NAME WHERE id = SOMEVALUE
编辑:根据您的反馈,它看起来像您正在使用,这提供了。我猜你会这么做:
public void delete(int id) {
this.db.delete(TABLE_NAME, 'id = ?', new String[] { id.toString() });
}
(原始答复…) 使用带有WHERE子句的DELETE语句,该语句只删除具有要删除的id的行:
DELETE FROM <tablename> WHERE id = ?
a如果要删除某个名称(假定该名称是唯一的),请执行以下操作:
从其中删除name=?
让我困惑的是,我不能只键入代码,我认为它必须看起来像这个公共的void delete(String id){this.db.delete(TABLE_NUM,“id=?”,null);}@Mark:Ah,我刚刚想到你正在使用一个特定的SQLite包装器(可能是Android?),它提供了一个方便的删除方法。如果您:a)指出您的操作系统/语言/SDK,这将非常有帮助;b) 在问题中包括您执行删除的失败尝试。
SELECT last_insert_rowid()
DELETE FROM <tablename> WHERE name = ?