2016-06-27 84 views
0

的最后一个元素所以...这是我的代码:删除的SQLite数据库表

public static final String DATABASE_NAME = "MY_DATABASE"; 
public static final String DATABASE_TABLE = "MY_TABLE"; 
public static final int DATABASE_VERSION = 1; 
public static final String KEY_CONTENT = "Content"; 
public static final String KEY_ID = "_id"; 

private static final String SCRIPT_CREATE_DATABASE = "create table " 
     + DATABASE_TABLE + " (" + KEY_ID 
     + " integer primary key, " + KEY_CONTENT 
     + " text not null);"; 
private SQLiteHelper sqLiteHelper; 
private SQLiteDatabase sqLiteDatabase; 
private Context context; 

public SQLiteAdapter(Context c) { context = c; } 

public int delete() { 
    return sqLiteDatabase.delete(DATABASE_TABLE, KEY_ID , null); 
} 

有没有搞错消息日志。只有当我在手机中运行它时才会中断。我已经使用了很多解决方案。它不想上班((( 有谁知道,如何删除最后一个元素在我的表?

回答

2

与仅限于一个元素,并通过ID降序排序选择查询获得最后插入的元素。

你也可以循环throught所有元素,并覆盖DATAS直到结束,但没有如果您的数据库有很多DATAS的那么多有效的。

最后,你可以使用

SELECT last_insert_rowid() 

你只插入后一些东西,并保持id作为类作用域变量。 SqliteDatabase.delete()方法的

https://www.sqlite.org/c3ref/last_insert_rowid.html

1

第二个参数是WHERE子句。你没有通过删除()该子句,没有说明你想要删除的内容。基本上你会得到这个SQL查询:

DELETE FROM DATABASE_TABLE WHERE KEY_ID; 

@亚历山大马丁给了你几个变种如何获得最后的id。