【问题标题】:Sqlite delete all functionSqlite 删除所有功能
【发布时间】:2012-07-20 07:54:35
【问题描述】:

我有一个关于 deleteAll() 函数的问题。我正在为我的数据库使用具有自动增量属性的键。当我从数据库中删除所有行时,它会删除所有内容。但是当我插入一个新行时,键不是从 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"
                + ");";

【问题讨论】:

  • 为什么要关心自增键的值?
  • 因为我在列表视图中显示它

标签: android sqlite


【解决方案1】:

您的代码不应依赖于自动递增键的值。

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

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

【讨论】:

    猜你喜欢
    • 2019-01-04
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 2019-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多