android sqlite 自增长序列号归0

当你的数据库使用自增长键的时候,其实系统会有一张表,记录了当前自增加键当前的值。
但是用有些软件看不到,比如我用的SqliteStadio:
在这里插入图片描述

可以看到里面全是我们自己工程里面的表。

那么怎么才能看到所有的表呢?

查看所有表的sql:

select name from sqlite_master where type='table' order by name

我们看下执行结果:
在这里插入图片描述

可以看到,结果里面其实是有sqlite_sequence 这张表的。

我们看下sqlite_sequence 记录的自增长情况:

SELECT *  FROM sqlite_sequence

在这里插入图片描述
可以看到左边是数据库表的名称,右边是当前自增长值。如果想要清0怎么办?用以下方法即可。

    /**
     * 更新相关表在 {@link DBAdapter#TABLENAME_SQLITE_SEQUENCE} 中seq值为0
     *
     * @param tableName     数据库表名
     */
    public void updateSEQValue(String tableName){
        StringBuilder sb = new StringBuilder();
        sb.append("update ").append(TABLENAME_SQLITE_SEQUENCE).append(" SET seq = 0 ").
                append("where name =").append("'").append(tableName).append("'");
        execSQL(sb.toString());
    }

sql 语句为:

update sqlite_sequence  SET seq = 0 where name = "sign"

sign 为你的数据库表的名称

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章