求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
要资料
 
 

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重置自动增量值
616 次浏览
6次  

在本教程中,我们将向您展示如何重置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元





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



616 次浏览
6次
 捐助