MySQL、Sqlite重置自增ID

1.MySQL重置自增id

方法一:使用truncate命令(截断表)

truncate table tableName;

注意:truncate命令一次性将表中所有数据删除,且无法恢复。并且在删除过程中不会激活与表有关的删除触发器。执行速度快。使用truncate命令后,表和索引所占用的空间会恢复到初始大小。

方法二:

delete from tableName;
alter tableName auto_increment=1;

2. sqlite重置自增id

当数据库中包含自动编号的字段时,SQLite会自动建立一个名为sqlite_sequence的表。这个表 包含两个字段:name和seq。其中,name记录了自动编号字段所在的表的名称,seq字段记录了该表当前最大的序号(下一条记录的编号将为当前序号加1)。重置表的自增id,只需要修改sqlite_sequence表即可。

方法一:

将表的记录全部清空,并把自动编号归0。

DELETE FROM tableName;
UPDATE sqlite_sequence SET seq = 0 WHERE name = 'tableName';

测试:

  • 新建sqlite表,名为tb_user。id自增,表中有5条记录。
    MySQL、Sqlite重置自增ID_第1张图片
  • 查询sqlite_sequence表:
select * from sqlite_sequence;

MySQL、Sqlite重置自增ID_第2张图片

-- 清空tb_user表中数据
DELETE FROM tb_user;
-- 重置tb_user表的自增序列
UPDATE sqlite_sequence SET seq = 0 WHERE name = 'tb_user';

MySQL、Sqlite重置自增ID_第3张图片

  • 插入一条记录
insert into tb_user(name,age) values('zhangsan',18);

MySQL、Sqlite重置自增ID_第4张图片
MySQL、Sqlite重置自增ID_第5张图片

方法二:

删除对应记录。

DELETE FROM tableName;
DELETE FROM sqlite_sequence WHERE name = 'tableName';

参考文章链接:

  • https://blog.csdn.net/chineseyoung/article/details/79277767
  • https://www.jb51.net/article/61575.htm
  • https://blog.csdn.net/vk5176891/article/details/8750164
  • https://blog.csdn.net/tojohnonly/article/details/52117326
  • https://blog.csdn.net/sdhongjun/article/details/86529613
  • https://blog.csdn.net/WxQ92222/article/details/79956403

你可能感兴趣的:(#,MySQL,#,SQLite)