比较郁闷昨天在家使用‘alter table `tablename` AUTO_INCREMENT=10000;’怎么也不起效,但是今天下班时间公司一同事尝试了一下就可以了。搞不明白自己当时是怎么操作的,导致最终不起效。

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

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

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

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参数

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,可行。

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,可行。

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:设置主键自动增长起始值的更多相关文章

  1. mysql设置主键自增长和自增长初始值

          本文主要向大家介绍MySQL数据库之Mysql创建表实现主键自增并且初始值为200,希望对大家学习MySQL数据库有所帮助.       假设已经创建表test,并且主键为id.Mysql ...

  2. SQLite设置主键自动增长及插入语法

    SQLite中,一个自增长字段定义为INTEGER PRIMARY KEY AUTOINCREMENT,那么在插入一个新数据时,只需要将这个字段的值指定为NULL,即可由引擎自动设定其值,引擎会设定为 ...

  3. PowerDesigner 15设置mysql主键自动增长及基数

    PowerDesigner 15设置mysql主键自动增长及基数 1.双击标示图,打开table properties->columns,  如图点击图标Customize Columns an ...

  4. MySQL的常用命令:添加外键,修改字段名称,增加字段 设置主键自增长等

    Mysql命令添加外键 前提是有这么几个表  以mall_product 和 mall_category为例 ALTER TABLE mall_product ADD CONSTRAINT fore_ ...

  5. oracle 主键自动增长

    oracle 主键自动增长 2009-12-11 16:07:00|  分类: 数据库资料|字号 订阅     这几天搞Oracle,想让表的主键实现自动增长,查网络实现如下: create tabl ...

  6. Oracle 设置主键自增长__Oracle

    转自:https://yq.aliyun.com/ziliao/258074 如果想在Oracle数据库里实现数据表主键自增,我们似乎没有办法像MySql般直接定义列的属性来实现.不过对于这个数据库的 ...

  7. 使用pl/sql的文本导入器时如何设置主键自增长

    在使用文本导入器批量导入数据时,如果需要设置主键自增长,可以先创建一个序列: create sequence SEQ_Userinf start with 1 increment by 1nomaxv ...

  8. SQLServer --------- 设置主键自增长

    设置主键自增长的两种方式 1.通过图形化的的操作方法进行设置 新建的时候进行设置 第二种是右击设计对已经建好的表进行设置  设置主键  设置自增长 标识增量标识每次自增加多少 标识种子标识从多少开始自 ...

  9. Oracle 设置主键自增长

    如果想在Oracle数据库里实现数据表主键自增,我们似乎没有办法像MySql般直接定义列的属性来实现.不过对于这个数据库的常用功能,我们还是有办法实现的.这里将展示使用触发器来实现主键自增. 1.准备 ...

随机推荐

  1. Js编程实践

    js编程实践思维导向图 ---欢迎收藏 ^ - ^

  2. 关于“在从服务器接收结果时发生传输级错误。 (provider: TCP Provider, error: 0 - 指定的网络名不再可用。)”的解决方法之一

    最近几天发现连sql数据库服务器的时候,总是提示“在从服务器接收结果时发生传输级错误. (provider: TCP Provider, error: 0 - 指定的网络名不再可用.)”的错误. 网上 ...

  3. postgresql怎么导入数据库

    1.切换到postgres用户 : sudo su - postgres 2.在shell命令行下,创建数据库exampledb,并指定所有者为dbuser : sudo -u postgres  - ...

  4. centos7配置jdk8环境变量

    最近在Linux的环境下配置jdk,参照网上的一些教程出现了一些问题,原因大致是由于centos的系统版本不同或者是jdk的版本不同导致出现了一定的问题.包括常规的因为classpath配置不对出现的 ...

  5. day 38

    目录 元类 什么是元类 元类的作用 怎么自定义创建元类 元类 什么是元类 用class关键字定义的类本身是一个对象,负责产生该对象的类称之为元类(元类可以简称为类的类),内置的元类为type 元类的作 ...

  6. python之路第五天

    字符串的应用(二) expandtabs 断句16,不够16个,用空格补齐 s = "username\te-mail\tpassword\nxiaoming\t123@qq.com\t12 ...

  7. php责任链模式(The chain of responsibility pattern)

    送家人从火车站归来,继续码. <?php /* The chain of responsibility pattern decouples the sender of a request fro ...

  8. 为什么要指定HashMap的容量?HashMap指定容量初始化后,底层Hash数组已经被分配内存了吗?

    为什么要指定HashMap的容量? 首先创建HashMap时,指定容量比如1024后,并不是HashMap的size不是1024,而是0,插入多少元素,size就是多少: 然后如果不指定HashMap ...

  9. 基于变分自编码器(VAE)利用重建概率的异常检测

    本文为博主翻译自:Jinwon的Variational Autoencoder based Anomaly Detection using Reconstruction Probability,如侵立 ...

  10. js里apply用法

    1.Function.apply,用于构造函数的继承,继承另外一个构建对象的属性与方法 function People(name,age){     this.name = name;     thi ...