MySQL 重置自增值

简介:在本教程中,我们将向您展示重置中列的AUTO_INCREMENTMySQL自动递增值的各种方法。

MySQL为您提供了一个称为自动增量的有用功能。您可以将AUTO_INCREMENT属性分配给表的列,以便为新行生成唯一标识。通常,您将AUTO_INCREMENT属性用于表的主键列。

无论何时向表中插入新行,MySQLAUTO_INCREMENT都会自动为列分配序列号。

例如,如果表有八行,并且您在不指定自动增量列的值的情况下插入新行,则MySQL将自动插入id值为9 的新行。

有时,您可能需要重置自动增量列的值,以便插入表中的第一个记录的标识从特定数字开始,例如1。

在MySQL中,您可以通过各种方式重置自动增量值。

MySQL重置自动增量值示例

首先,创建一个名为的tmp表,并将AUTO_INCREMENT属性  分配给  id  主键列。

CREATE TABLE tmp (

id INT NOT NULL AUTO_INCREMENT,

name VARCHAR(45) DEFAULT NULL,

PRIMARY KEY (id)

);

其次,将一些示例数据插入tmp  表中:

INSERT INTO tmp(name)

VALUES('test 1'),

('test 2'),

('test 3');

三,查询tmp  表以确认插入操作:

SELECT

*

FROM

tmp;

+----+--------+

| id | name |

+----+--------+

| 1 | test 1 |

| 2 | test 2 |

| 3 | test 3 |

+----+--------+

3 rows in set (0.00 sec)

我们有三行,ID列的值分别为1,2和3.完美!是时候练习重置ID列的自动增量值了。

查看自动量值,红色标记的位置

mysql> show create table tmp \G;

*************************** 1. row ***************************

Table: tmp

Create Table: CREATE TABLE `tmp` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(45) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

1 row in set (0.02 sec)

使用ALTER TABLE语句

您可以使用ALTER TABLE  重置自动增量值的语句的语法如下:

ALTER TABLE table_name AUTO_INCREMENT = value;

您可以在ALTER TABLE子句后指定表名,并value在表达式中指定要重置的表名AUTO_INCREMENT=value。

请注意,value必须大于或等于自动增量列的当前最大值。

让我们删除tmp 表中最后一条id 值为3的记录:

DELETE FROM tmp

WHERE

ID = 3;

如果插入新行,MySQL将为新行的id列分配4  。但是,您可以使用以下ALTER TABLE  语句将MySQL生成的数字重置为3 :

ALTER TABLE tmp AUTO_INCREMENT = 3;

再查看一下自增值,红色标记:

mysql> show create table tmp \G;

*************************** 1. row ***************************

Table: tmp

Create Table: CREATE TABLE `tmp` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(45) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

1 row in set (0.02 sec)

现在,让我们尝试在tmp  表中插入一个新行并从中查询数据以查看效果:

INSERT INTO tmp(name)

VALUES ('MySQL example 3');

SELECT

*

FROM

tmp;

+----+-----------------+

| id | name |

+----+-----------------+

| 1 | test 1 |

| 2 | test 2 |

| 3 | MySQL example 3 |

+----+-----------------+

3 rows in set (0.02 sec)

我们有三行,最后一个自动增量值是3而不是4,这是我们所期望的。

使用TRUNCATE TABLE语句

TRUNCATE TABLE语句从表中删除所有数据并重置自动递增值为零。

以下说明了TRUNCATE TABLE  语句的语法:

TRUNCATE TABLE table_name;

通过使用TRUNCATE TABLE  语句,您可以永久删除表中的所有数据,并将自动增量值重置为零。

使用DROP TABLE和CREATE TABLE语句

您可以使用一对语句:DROP TABLE和CREATE TABLE来重置自动增量列。请注意,此方法会永久删除表中的所有数据。

与TRUNCATE TABLE  语句一样,这些语句会删除表并重新创建它,因此,自动增量的值将重置为零。

DROP TABLE table_name;

CREATE TABLE table_name(...);

在本教程中,您学习了如何以各种方式重置MySQL中的自动增量值。第一种方式更可取,因为它是最简单的方法,没有副作用。

mysql怎么初始化自增值_MySQL 重置自增值相关推荐

  1. mysql无法初始化数据库引擎_mysql使用模板解决旧数据处理,默认初始化数据的通用方法!...

    一 业务介绍 先来看看我这得大致业务需求,这次业务比较简单: 即从现在开始,每次new一个爷爷都需要默认初始化给这个爷爷三个儿子(子表,爷爷id去关联),并在初始化每个儿子的同时再给每个儿子初始化若干 ...

  2. mysql 数据库初始化失败怎么办_mysql数据库失败的解决方法

    mysql数据库失败的解决方法 发布时间:2020-11-16 10:50:01 来源:亿速云 阅读:87 作者:小新 这篇文章将为大家详细讲解有关mysql数据库失败的解决方法,小编觉得挺实用的,因 ...

  3. mysql 创建初始化帐号_MySQL创建SCOTT用户及初始化数据

    表结构 create table dept( -- 部门编号 deptno int unsigned auto_increment primary key, -- 部门名称 dname varchar ...

  4. mysql 自动增量_MySQL重置自动增量值

    在本教程中,我们将向您展示如何重置MySQL中AUTO_INCREMENT列的自动增量值. MySQL提供了一个有用的功能,称为自动增量. 您可以将自动递增属性分配给表的列,以生成新行的唯一标识. 通 ...

  5. mysql重启root不能登_Mysql 5.7.28初始化使用root无法登录

    背景: 新买的云服务器,Ubuntu系统,在线安装了mysql-5.7.28,初始化之后并成功启动 问题: 打开error.log日志,使用root账号登录失败,从日志中也无法找到临时密码,无法登录 ...

  6. mysql+8.0+新特性_MySQL 8.0备受瞩目的新特性大放送!

    原标题:MySQL 8.0备受瞩目的新特性大放送! 作者介绍 杨奇龙,目前就职于有赞科技,负责数据库运维工作,熟悉MySQL性能优化.故障诊断.性能压测. MySQL于 2016-09-12正式发布8 ...

  7. linux mysql 实战_Linux平台MySQL多实例项目实施_MySQL数据库基础与项目实战06

    Linux平台MySQL多实例项目实施_MySQL数据库基础与项目实战06 视频教程学习地址 Oracle/MySQL数据库学习专用QQ群:336282998.189070296 学完风哥本课程能熟悉 ...

  8. mysql 5.6多实例_MySQL 5.6.x多实例配置

    前提准备 个人不喜欢采用mysqlmulti方式配置多实例,还是采用多实例多进程方式配置. 1, 准备数据库实例datadir目录 # mkdir -p /usr/local/mysql/mysql3 ...

  9. mysql为什么要编译安装_Mysql编译安装

    Mysql编译安装 创建目录 [root@db02 ~]# mkdir /server/tools -p 进入目录 [root@db02 ~]# cd /server/tools/ 上传mysql源码 ...

最新文章

  1. 面试官:CAP都搞不清楚,别跟我说你懂微服务!
  2. PHP 字符处理 加密解密 函数收集
  3. 关于Async与Await的FAQ
  4. 3.23 vi/vim:纯文本编辑器
  5. CodeForces - 1465E Poman Numbers(推公式+贪心)
  6. 解决属性名和字段名不一致的问题(Mybatis)
  7. 混合高斯模型_大数据小白入门高斯混合模型(GMM)聚类算法
  8. 17 类的成员 私有
  9. 前端项目ip设置成0.0.0.0的原因
  10. 服务器网赚项目,草根站长的一个网赚项目的分析和总结
  11. c#开发环境下用Directx载入3D模型
  12. 永洪报表工具_报表工具对比选型系列用例——过程计算
  13. Typora使用技巧之插入图片及图片上传
  14. 前后落差大用什么词语_描写心理落差大词语
  15. 使用make_ext4fs制作文件系统时写入文件安全上下文的方法
  16. Gi t 折磨疯了的SSL证书问题
  17. Python混合图片操作
  18. InstructGPT高效实践——【DeepSpeed-Chat】源码详解(2/3):Supervised Finetuning、Reward Model Finetuning
  19. 360浏览器用地址栏搜索怎么更改搜索引擎
  20. 人事管理系统hrm的总结

热门文章

  1. PHP中Cookie和Session的对比
  2. tomcat下多个app 不同的图标_iOS平台设计规范(五)图标与图片
  3. 如何从零搭建一个hexo博客网站02
  4. 把网站图片和php程序分离,我的图片服务器和WEB应用服务器相分离的简单方案
  5. 【2021-01-14】navicat使用ssh tunnel、密钥方式连接数据库的问题。错误:Unable to load key - unrecognised cipher name
  6. rplidar 启动马达 c++_【玩码】刘作虎:一加7 Pro的横向线性马达,为安卓手机最大...
  7. java case 语句_ECMAScript switch 语句
  8. oracle 2018 深圳大会,2018中国科幻大会深圳时间、地点、亮点
  9. 如何在验证集加噪声_如何使用Python构建机器学习模型
  10. r语言 读取dta_R语言与计量经济学(三)异方差