Android 删除后是否重新排列数据库行?
我的应用程序中有一个数据库,当我使用数据库行ID执行删除操作时,行项目将被删除,但我的表保留该空行。我怎样才能删除这个 数据库类:Android 删除后是否重新排列数据库行?,android,sql,sqlite,Android,Sql,Sqlite,我的应用程序中有一个数据库,当我使用数据库行ID执行删除操作时,行项目将被删除,但我的表保留该空行。我怎样才能删除这个 数据库类: public class ContactDatabase extends SQLiteOpenHelper { SQLiteDatabase db; public static final String DATABASE_NAME="totalContact1.db"; public static final String TABLE_NA
public class ContactDatabase extends SQLiteOpenHelper {
SQLiteDatabase db;
public static final String DATABASE_NAME="totalContact1.db";
public static final String TABLE_NAME="mecontact1";
public static final String NAME="name";
public static final String PHONE="phone";
public static final String UID="_id";
public ContactDatabase(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
try {
db.execSQL("create table mecontact1" +
"(_id integer primary key autoincrement, name text, phone text)");
}catch(android.database.SQLException e){
System.out.println("table create nhi ho rha");
}
}
public void deleteContact(String d,int pos){
db=this.getWritableDatabase();
db.delete(TABLE_NAME, UID + "= ? ", new String[] {String.valueOf(pos)});
}
}
当我执行db.delete时(TABLE_NAME,UID+“=?”,新字符串[]{String.valueOf(pos)})代码>操作在
删除联系人(字符串d,int pos)
中,表保留空行的记录。如何按顺序重新排列具有_id列的表?因此,如果我有第1、2、3行,我删除了2行,那么您有1、3行,您希望这些行自动重新排列为1、2行,对吗?如果是这种情况,请在db.delete
,db.execSQL(“更新”+TABLE_NAME+“set”+UID+”=(“+UID+”-1),其中“+UID+”>“+String.valueOf(pos)))之后尝试此操作代码>。无论如何,这不是一个好的解决方案,但在我测试它时它起了作用。@DanielK这将很好地起作用,但问题是当我在表中添加新项时_id开始用最后输入的值计数。说明:我有第1、2、3行,我删除了第2行,然后我有第1、3行,通过使用您的查询,它将进行排序,但当我添加新项时,它将以4、5、6开头……您可以从表声明中删除自动增量
,然后每次插入时,您都可以查询总行,然后在\u id+1
处插入。再说一次,它充其量只是一种变通办法。@DanielK有没有办法在不删除自动增量的情况下实现这些功能?我到目前为止读到的都没有。签出&。如果我有第1、2、3行,我删除了第2行,那么你有第1、3行,你希望这些行自动重新排列为第1、2行,对吗?如果是这种情况,请在db.delete
,db.execSQL(“更新”+TABLE_NAME+“set”+UID+”=(“+UID+”-1),其中“+UID+”>“+String.valueOf(pos)))之后尝试此操作代码>。无论如何,这不是一个好的解决方案,但在我测试它时它起了作用。@DanielK这将很好地起作用,但问题是当我在表中添加新项时_id开始用最后输入的值计数。说明:我有第1、2、3行,我删除了第2行,然后我有第1、3行,通过使用您的查询,它将进行排序,但当我添加新项时,它将以4、5、6开头……您可以从表声明中删除自动增量
,然后每次插入时,您都可以查询总行,然后在\u id+1
处插入。再说一次,它充其量只是一种变通办法。@DanielK有没有办法在不删除自动增量的情况下实现这些功能?我到目前为止读到的都没有。退房&。