求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   模型库  
会员   
 


AI 智能化软件测试方法与实践
5月23-24日 上海+在线



人工智能.机器学习TensorFlow
5月22-23日 北京



图数据库与知识图谱
5月22-23日 北京
 
 

mysql教程
MySQL快速学习入门
MySQL是什么
MySQL安装
MySQL示例数据库
MySQL导入示例数据库
MySQL基础教程
MySQL查询数据
MySQL WHERE语句
MySQL插入数据
MySQL更新表数据
MySQL删除表数据
MySQL创建与删除数据库
MySQL创建表
MySQL修改表结构
MySQL重命名表
MySQL数据类型
高级部分
MySQL技巧
MySQL存储过程
MySQL视图
MySQL触发器
MySQL管理
MySQL全文搜索
MySQL函数
应用程序连接
MySQL+Node.js连接和操作
Python+MySQL连接和操作
 
 

MySQL重置自动增量值
647 次浏览
7次  

在本教程中,我们将向您展示如何重置MySQL中AUTO_INCREMENT列的自动增量值。

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

无论何时在表中插入新行,MySQL会自动将序列值分配给自动增量列。

例如,如果表有8行,并插入新行而不指定自动增量列的值,MySQL将自动插入一个id为9的新行。

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

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

MySQL重置自动增量值示例

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

USE testdb;
CREATE TABLE tmp (
id int(11) 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

所上查询结果所示,总共有三行,ID列的值分别为:1,2和3,现在,来看看如何重置ID列的自动增量值。

MySQL通过使用ALTER TABLE语句重置自动增量值

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

ALTER TABLE table_name AUTO_INCREMENT = value;

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

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

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

DELETE FROM tmp WHERE ID = 3;

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

ALTER TABLE tmp AUTO_INCREMENT = 3;

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

INSERT INTO tmp(name)
VALUES ('MySQL example 3');

SELECT
*
FROM
tmp;

执行上面查询语句,得到以下结果 -

+----+-----------------+
| id | name |
+----+-----------------+
| 1 | test 1 |
| 2 | test 2 |
| 4 | MySQL example 3 |
+----+-----------------+
3 rows in set

现在,表中有三行记录,最后一个自动递增值为3而不是4,这是像我们所预期的那样。

MySQL使用TRUNCATE TABLE语句重置自动增量值

TRUNCATE TABLE语句删除表的所有数据,并将auto_increment值重置为0。

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

TRUNCATE TABLE table_name;

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

MySQL使用DROP TABLE和CREATE TABLE语句重置自动增量值

您可以使用一对语句:DROP TABLE和CREATE TABLE来重置自动增量列。

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

DROP TABLE table_name;
CREATE TABLE table_name(...);

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


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



647 次浏览
7次
 捐助