当你的数据库使用自增长键的时候,其实系统会有一张表,记录了当前自增加键当前的值。
但是用有些软件看不到,比如我用的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 为你的数据库表的名称

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐