Android中SQLite的自增主键id重置为1

Posted Dengqin Ma

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android中SQLite的自增主键id重置为1相关的知识,希望对你有一定的参考价值。

在重置id之前,需要了解:
当SQLite数据库中包含自增列时,会自动建立一个名为 sqlite_sequence 的表。这个表有name和seq两列,name记录自增列所在的表,seq记录当前序号(下一条记录的编号就是当前序号加1)。所以如果想把自增主键重置为1,只要将sqlite_sequence表里的seq设为0就可以了(id初始值就是0加1,为1)。
用下面两行代码就能实现啦,代码里conp1是我数据表的名字,其余的都不需要改。

	db.execSQL("delete from conp1");//清空名为conp1的数据表
    db.execSQL("UPDATE sqlite_sequence SET seq = 0 WHERE name = 'conp1'");//更新sqlite_sequence并将seq设为0,conp1是我数据表的名字

下面来看看程序里原代码怎么写滴,就是这么简单~运行之后id就从1开始啦

	/**
     * 数据库初始化
     */
    private void data_init() {
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        db.execSQL("delete from conp1");//清空名为conp1的数据表
        db.execSQL("UPDATE sqlite_sequence SET seq = 0 WHERE name = 'conp1'");//更新sqlite_sequence并将seq设为0,conp1是我数据表的名字
    }

以上是关于Android中SQLite的自增主键id重置为1的主要内容,如果未能解决你的问题,请参考以下文章

Mysql对自增主键ID进行重新排序

mybatis批量插入,怎么返回生成的自增主键

关于 mysql 事务中的自增 id 的疑问

Mysql数据库表的自增主键重新排列

SQL Server数据库表重置自增主键号(通常是指ID)

mybatis批量插入,怎么返回生成的自增主键