服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - Mysql设置主键自动增长起始值的方案总结

Mysql设置主键自动增长起始值的方案总结

2022-11-09 16:06菜鸟是大神 Mysql

在MySQL 中,当主键定义为自增长后,这个主键的值就不再需要用户输入数据了,而由数据库系统根据定义自动赋值,下面这篇文章主要给大家介绍了关于Mysql设置主键自动增长起始值的相关资料,需要的朋友可以参考下

实现目标:mysql下将自增主键的值,从10000开始,即实现自增主键的种子为10000。

方案1)使用alter table `tablename` AUTO_INCREMENT=10000

创建自增主键之后,使用alter table `tablename` AUTO_INCREMENT=10000实现修改表起始值。

?
1
2
3
4
5
6
7
8
9
10
11
12
drop table if exists `trace_test`;
 
CREATE TABLE `trace_test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
 
alter table `trace_test` AUTO_INCREMENT=10000;
 
insert into `trace_test`(`name`)values('name2');
select * from `trace_test`;

Result:

id     name
10000  name2

方案2)创建表时设置AUTO_INCREMENT 10000参数

?
1
2
3
4
5
6
7
8
9
10
drop table if exists `trace_test`;
 
CREATE TABLE `trace_test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT 10000 DEFAULT CHARSET=utf8 ;
 
insert into `trace_test`(`name`)values('name2');
select * from `trace_test`;

Result:

id     name
10000  name2

3)如果表已有数据,truncate 之后设置auto_increment=10000,可行。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
drop table if exists `trace_test`;
 
CREATE TABLE `trace_test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
 
insert into `trace_test`(`name`)values('name1');
select * from `trace_test`;
 
truncate table `trace_test`;
alter table `trace_test` AUTO_INCREMENT=10000;
 
insert into `trace_test`(`name`)values('name2');
select * from `trace_test`;

Result1:

id     name
10000  name
Result2:

id     name
10000  name2

4)如果表已有数据,delete from之后设置auto_increment=10000,可行。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
drop table if exists trace_test;
 
CREATE TABLE trace_test (
  id int(20) NOT NULL AUTO_INCREMENT,
  name varchar(255) DEFAULT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
 
insert into trace_test(name)values('name1');
select * from trace_test;
 
delete from `trace_test`;
 
alter table trace_test AUTO_INCREMENT=10000;
 
insert into trace_test(name)values('name2');
select * from trace_test;

Result1:

id     name
10000  name
Result2:

id     name
10000  name2

总结

到此这篇关于Mysql设置主键自动增长起始值的文章就介绍到这了,更多相关Mysql主键自动增长起始值内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/wufaqidong1/article/details/126263023

延伸 · 阅读

精彩推荐
  • Mysql浅谈mysql执行过程以及顺序

    浅谈mysql执行过程以及顺序

    这篇文章主要介绍了浅谈mysql执行过程以及顺序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面...

    Yrion4722021-07-12
  • Mysqlmysql 5.7.19 二进制最新安装

    mysql 5.7.19 二进制最新安装

    这篇文章主要介绍了mysql 5.7.19 二进制最新安装的相关资料,需要的朋友可以参考下...

    MYSQL教程网2322020-08-15
  • MysqlNavicat连接MySQL错误描述分析

    Navicat连接MySQL错误描述分析

    最近遇到了一件非常棘手的问题,用Navicat连接MySQL总是出错, 网上查阅了一下原因,最终找到解决方案,好吧,下面我就来回忆一下自己怎么处理这问题的...

    Kalinda Sharma6742021-08-09
  • MysqlMySQL性能瓶颈排查定位实例详解

    MySQL性能瓶颈排查定位实例详解

    这篇文章主要介绍了MySQL性能瓶颈排查定位的方法,结合实例形式详细分析了MySQL排查性能瓶颈问题的步骤与相关技巧,需要的朋友可以参考下 ...

    OurMySQL1582020-06-06
  • MysqlMysql存储引擎详解

    Mysql存储引擎详解

    存储引擎其实就是如何实现存储数据,如何为存储的数据建立索引以及如何更新,查询数据等技术实现的方法。本文我们来详细探讨下MySQL中的几个存储引...

    Bloo_m2452020-07-08
  • Mysqlwindows 10 下mysql-8.0.17-winx64的安装方法图解

    windows 10 下mysql-8.0.17-winx64的安装方法图解

    这篇文章主要介绍了windows 10 mysql-8.0.17-winx64的方法,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...

    因心2912020-12-02
  • Mysql修改Mysql root密码的方法

    修改Mysql root密码的方法

    这篇文章主要介绍了修改Mysql root密码的方法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下 ...

    服务器之家2212020-07-01
  • MysqlMySQL的prepare使用及遇到bug解析过程

    MySQL的prepare使用及遇到bug解析过程

    在一次开发中使用 MySQL PREPARE 以后,从 prepare 直接取 name 赋值给 lex->prepared_stmt_name 然后给 EXECUTE 用,发现有一定概率找不到 prepare stmt 的 name,于是开始动...

    GreatSQL7802022-10-27