Sqlite删除所有功能

时间:2012-07-20 07:54:36

标签: android sqlite

我对deleteAll()函数有疑问。我正在为我的数据库使用具有autoincrement属性的键。当我从数据库中删除所有行时,它会删除所有内容。但是当我插入一个新行时,键不会从1开始,例如在删除键为15之前,删除后新键变为16而不是1。我怎样才能解决这个问题?有什么建议吗?

这里是我的代码

 public int deleteAll(){

 return sqLiteDatabase.delete(MYDATABASE_TABLE, null, null);

 }

   public void onCreate(SQLiteDatabase db) {

  db.execSQL(SCRIPT_CREATE_DATABASE);

 }

我的数据库脚本

private static final String SCRIPT_CREATE_DATABASE =

     "create table "
                + MYDATABASE_TABLE + "("
                + KEY_ID + " integer primary key autoincrement, " 
                + COLUMN_NAME + " text not null, " 
                + COLUMN_EMAIL + " text not null, "
                + COLUMN_PHONE + " text not null, "
                + COLUMN_ADDRESS + " text not null"
                + ");";

1 个答案:

答案 0 :(得分:1)

您的代码不应该依赖于自动递增密钥的值。

为了向用户显示,在迭代数据库游标时使用单独的计数器。用户通常不需要知道密钥,只需知道序列号。两者都可以不同。

但是如果你坚持重新启动键值,请尝试删除表并重新创建它。但要注意其他表中使用的旧键值作为外键。使用触发器来处理这种情况。