【发布时间】:2015-10-10 06:50:09
【问题描述】:
我使用 ormlite 使用了 sqlite 数据库。我在数据库中声明了主键,如下所示:在数据库中,我获取值并显示在列表视图中。当我删除一些条目时。在列表视图中。主键继续增加值。
@DatabaseField(generatedId = true,columnName = "teacher_id")
int teacherid;
try {
Toast.makeText(DetailListView.this, "Delete entry", Toast.LENGTH_LONG).show();
DeleteBuilder<TeacherDetails, Integer> deleteBuilder=teacherDao.deleteBuilder();
deleteBuilder.where().eq("teacher_address", set.teacheraddress);
deleteBuilder.delete();
stud_list = teacherDao.queryForAll();
//adapter = new UsersAdapter(DetailListView.this, stud_list);
// list.setAdapter(adapter);
list.invalidate();
teacherDao.executeRaw("delete from sqlite_sequence where name='teacher_details';");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//创建数据库的代码。
@Override
public void onCreate (SQLiteDatabase sqliteDatabase, ConnectionSource connectionSource) {
try {
TableUtils.createTable(connectionSource, TeacherDetails.class);
TableUtils.createTable(connectionSource, StudentDetails.class);
} catch (SQLException e) {
Log.e(DatabaseHelper.class.getName(), "Unable to create datbases", e);
}
}
@Override
public void onUpgrade(SQLiteDatabase sqliteDatabase, ConnectionSource connectionSource, int oldVer, int newVer) {
try {
TableUtils.dropTable(connectionSource, TeacherDetails.class, true);
TableUtils.dropTable(connectionSource, StudentDetails.class, true);
onCreate(sqliteDatabase, connectionSource);
} catch (SQLException e) {
Log.e(DatabaseHelper.class.getName(), "Unable to upgrade database from version " + oldVer + " to new "
+ newVer, e);
}
}
例如在删除之前 1)主键:1 2)主键:2(如果我删除此值) 3)主键:3
删除后1)主键:1 2)主键:3(不以主键值2开头)3)主键4
这是我的要求
【问题讨论】:
-
我不明白...你希望它表现得那样,或者你在抱怨这种行为。你在哪里以及如何创建你的表? (提示:需要
OrmLiteSqliteOpenHelper的代码) -
请找到 db 的代码...一般是主键( (generatedId = true,columnName = "teacher_id")........它继续增加顺序..创建时新条目..当我们删除一些条目然后插入意味着它以该递增顺序开始(例如,如果我删除 2 个条目并且插入意味着条目以 3 开头......不是具有相同的 id(即 2))。 .这是我的问题...我想以相同的值(即 2)开始新条目