mysql自增ID起始值修改方法

2018-07-11 16:18:54

在mysql中很多朋友都认为字段为AUTO_INCREMENT类型自增ID值是无法修改,其实这样理解是错误的,下面介绍mysql自增ID的起始值修改与设置方法。
通常的设置自增字段的方法:
创建表格时添加:

复制代码代码如下:


create table table1(id int auto_increment primary key,...)


创建表格后添加:

复制代码代码如下:


alter table table1 add id int auto_increment primary key 自增字段,一定要设置为primary key.


许多时候希望table中数据的id不要从1开始,像qq, id从10000开始
代码如下:

复制代码代码如下:


alter table users AUTO_INCREMENT=10000;
 


而且该语句也适用于修改现有表的id上, 比如大批量删除数据后,想id从654321退回123456开始

复制代码代码如下:


alter table users AUTO_INCREMENT=123456;
 


但是经过实际测试, 单机的Mysql没有问题, Mysql Cluster下是无效的,可能在主键上的机制,还是有所不同,有时间研究一下


在Rails migration中的写法如下:

复制代码代码如下:


create_table :articles, :options => 'AUTO_INCREMENT = 1001' do |t|   
# xxx todo      
end


设置自增ID从N开始

复制代码代码如下:


CREATE TABLE TABLE_1 ( ID INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, // ID列为无符号整型,该列值不可以为空,并不可以重复,而且自增。 NAME VARCHAR(5) NOT NULL ) AUTO_INCREMENT = 100;(ID列从100开始自增)


如果想让自增ID从默认值开始只要

复制代码代码如下:


TRUNCATE TABLE table1 
 


即可
  • 2019-05-28 13:33:20

    BRVAH+MTRVA,复杂?不存在的

    言归正传,这样的一个首页,我们需要做怎么样的基础工作呢?或者说,碰到以后更复杂的页面我们应该怎么做?这里小提示下,不要再用什么类似ScrollView的这种东西了,诶,好像说的有点绝对,尽量不要用,这不是谷歌想要看到的,5.0谷歌推出了RecyclerView,从它的整个设计架构来看,简直就是为这而生的。而RecyclerView的视图是通过Adapter来渲染的。原始的Adapter,让人很蛋疼,重复工作太多,我们应该要有封装的思想,把最需要的部分提供出来,其它不用管。

  • 2019-05-29 14:19:19

    解决Git中fatal: refusing to merge unrelated histories

    Git的报错 在使用Git的过程中有时会出现一些问题,那么在解决了每个问题的时候,都需要去总结记录下来,下次不再犯。 一、fatal: refusing to merge unrelated histories 今天在使用Git创建项目的时候,在两个分支合并的时候,出现了下面的这个错误。

  • 2019-05-29 15:47:51

    撤销commit

    在git push的时候,有时候我们会想办法撤销git commit的内容

  • 2019-06-03 00:07:32

    Android程序Crash时的异常上报

    家都知道,android应用不可避免的会发生crash,无论你的程序写的多完美,总是无法完全避免crash的发生,可能是由于android系统底层的bug,也可能是由于不充分的机型适配或者是糟糕的网络状况。当crash发生时,系统会kill掉你的程序,表现就是闪退或者程序已停止运行,这对用户来说是很不友好的,也是开发者所不愿意看到的,更糟糕的是,当用户发生了crash,开发者却无法得知程序为何crash,即便你想去解决这个crash,但是由于你无法知道用户当时的crash信息,所以你也无能为力。是否真的这样呢,其实android中有处理这类问题的方法,请看下面Thread类中的一个方法#setDefaultUncaughtExceptionHandler