mysql怎么初始化自增值_MySQL 重置自增值
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 重置自增值相关推荐
- mysql无法初始化数据库引擎_mysql使用模板解决旧数据处理,默认初始化数据的通用方法!...
一 业务介绍 先来看看我这得大致业务需求,这次业务比较简单: 即从现在开始,每次new一个爷爷都需要默认初始化给这个爷爷三个儿子(子表,爷爷id去关联),并在初始化每个儿子的同时再给每个儿子初始化若干 ...
- mysql 数据库初始化失败怎么办_mysql数据库失败的解决方法
mysql数据库失败的解决方法 发布时间:2020-11-16 10:50:01 来源:亿速云 阅读:87 作者:小新 这篇文章将为大家详细讲解有关mysql数据库失败的解决方法,小编觉得挺实用的,因 ...
- mysql 创建初始化帐号_MySQL创建SCOTT用户及初始化数据
表结构 create table dept( -- 部门编号 deptno int unsigned auto_increment primary key, -- 部门名称 dname varchar ...
- mysql 自动增量_MySQL重置自动增量值
在本教程中,我们将向您展示如何重置MySQL中AUTO_INCREMENT列的自动增量值. MySQL提供了一个有用的功能,称为自动增量. 您可以将自动递增属性分配给表的列,以生成新行的唯一标识. 通 ...
- mysql重启root不能登_Mysql 5.7.28初始化使用root无法登录
背景: 新买的云服务器,Ubuntu系统,在线安装了mysql-5.7.28,初始化之后并成功启动 问题: 打开error.log日志,使用root账号登录失败,从日志中也无法找到临时密码,无法登录 ...
- mysql+8.0+新特性_MySQL 8.0备受瞩目的新特性大放送!
原标题:MySQL 8.0备受瞩目的新特性大放送! 作者介绍 杨奇龙,目前就职于有赞科技,负责数据库运维工作,熟悉MySQL性能优化.故障诊断.性能压测. MySQL于 2016-09-12正式发布8 ...
- linux mysql 实战_Linux平台MySQL多实例项目实施_MySQL数据库基础与项目实战06
Linux平台MySQL多实例项目实施_MySQL数据库基础与项目实战06 视频教程学习地址 Oracle/MySQL数据库学习专用QQ群:336282998.189070296 学完风哥本课程能熟悉 ...
- mysql 5.6多实例_MySQL 5.6.x多实例配置
前提准备 个人不喜欢采用mysqlmulti方式配置多实例,还是采用多实例多进程方式配置. 1, 准备数据库实例datadir目录 # mkdir -p /usr/local/mysql/mysql3 ...
- mysql为什么要编译安装_Mysql编译安装
Mysql编译安装 创建目录 [root@db02 ~]# mkdir /server/tools -p 进入目录 [root@db02 ~]# cd /server/tools/ 上传mysql源码 ...
最新文章
- 面试官:CAP都搞不清楚,别跟我说你懂微服务!
- PHP 字符处理 加密解密 函数收集
- 关于Async与Await的FAQ
- 3.23 vi/vim:纯文本编辑器
- CodeForces - 1465E Poman Numbers(推公式+贪心)
- 解决属性名和字段名不一致的问题(Mybatis)
- 混合高斯模型_大数据小白入门高斯混合模型(GMM)聚类算法
- 17 类的成员 私有
- 前端项目ip设置成0.0.0.0的原因
- 服务器网赚项目,草根站长的一个网赚项目的分析和总结
- c#开发环境下用Directx载入3D模型
- 永洪报表工具_报表工具对比选型系列用例——过程计算
- Typora使用技巧之插入图片及图片上传
- 前后落差大用什么词语_描写心理落差大词语
- 使用make_ext4fs制作文件系统时写入文件安全上下文的方法
- Gi t 折磨疯了的SSL证书问题
- Python混合图片操作
- InstructGPT高效实践——【DeepSpeed-Chat】源码详解(2/3):Supervised Finetuning、Reward Model Finetuning
- 360浏览器用地址栏搜索怎么更改搜索引擎
- 人事管理系统hrm的总结
热门文章
- PHP中Cookie和Session的对比
- tomcat下多个app 不同的图标_iOS平台设计规范(五)图标与图片
- 如何从零搭建一个hexo博客网站02
- 把网站图片和php程序分离,我的图片服务器和WEB应用服务器相分离的简单方案
- 【2021-01-14】navicat使用ssh tunnel、密钥方式连接数据库的问题。错误:Unable to load key - unrecognised cipher name
- rplidar 启动马达 c++_【玩码】刘作虎:一加7 Pro的横向线性马达,为安卓手机最大...
- java case 语句_ECMAScript switch 语句
- oracle 2018 深圳大会,2018中国科幻大会深圳时间、地点、亮点
- 如何在验证集加噪声_如何使用Python构建机器学习模型
- r语言 读取dta_R语言与计量经济学(三)异方差