`

mysql自增ID起始值修改方法

 
阅读更多

在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 
 


即可

分享到:
评论

相关推荐

    mysql自增字段重排 mysql删除表后自增字段从1开始.pdf

    - 对于已存在的表,可以使用`ALTER TABLE table_name AUTO_INCREMENT=n`命令来更改自增字段的起始值。 2. **删除记录的影响**: - 在MyISAM表中,删除最大编号的记录后,该编号不会被重用。这意味着自增序列不会...

    两种mysql对自增id重新从1排序的方法

    2. 修改表的自增 ID 属性,将其设置为你希望的起始值。通常,我们想要从 1 开始,所以: ```sql $sql = "ALTER TABLE $table_vote AUTO_INCREMENT = 1"; mysql_query($sql, $link); ``` 这种方法的优点在于,它...

    mysql自增字段重排 mysql删除表后自增字段从1开始.docx

    要重置自增字段的起始值,可以在创建表时使用`AUTO_INCREMENT=n`选项,或者使用`ALTER TABLE table_name AUTO_INCREMENT=n`命令。例如,如果你想要自增字段从10开始,你可以执行`ALTER TABLE table_name AUTO_...

    MySQL表自增id溢出的故障复盘解决

    4. **设置自增id起始值**:设置新表的自增id起始值为tb1的最大id值加1,避免id冲突。使用`ALTER TABLE tb2 AUTO_INCREMENT = xxxx+1`,其中xxxx是之前查询得到的最大id。 5. **切换表名**:重命名原表tb1为tb_...

    oracle迁移mysql自增序列问题

    在上述例子中,通过`ALTER TABLE`语句将`id`字段改为自动增加,MySQL自动地从当前表中最大`id`值的下一个数字开始自增,因此在插入新记录`'test6'`时,`id`字段被设置为101,符合预期。 问题延伸部分提出了两个额外...

    常用数据库的自增字段创建方法汇总

    本文将详细介绍几种主流数据库系统中的自增字段创建方法,包括 DB2、Oracle、MySQL、PostgreSQL、SQL Server 和 Sybase。 #### DB2 DB2 支持通过 `GENERATED ALWAYS AS IDENTITY` 属性来创建自增字段。这种方式...

    mysql如何让自增id归0解决方案

    在MySQL数据库中,自增ID...总结来说,MySQL中让自增ID归零的常用方法包括清空表(TRUNCATE TABLE)或删除数据后再修改自增ID的初始值(ALTER TABLE)。这两种方法各有适用场景,根据实际需求选择合适的操作方式。

    Mysql面试题主键自增

    2. 自增起始值:默认情况下,自增字段的初始值是1,但可以通过ALTER TABLE语句或CREATE TABLE语句来设置自定义的起始值。 3. 自增步长:默认情况下,每次自增1,也可以自定义增加的步长,如每次增加2或其他数值。 4....

    mysql中自增auto_increment功能的相关设置及问题

    `语句,将自增ID重置为指定值。 - 自增字段不一定要从1开始,可以根据业务需求设置合适的初始值。 总之,理解MySQL的自增(auto_increment)特性和其相关设置是数据库管理的基础知识,有助于优化数据存储并避免潜在...

    LINUX +MYSQL双机配置

    5. `auto-increment-offset=1` 和 `auto-increment-increment=2`:用于主主同步时避免自增ID冲突,这里设置主服务器的自增ID起始偏移量为1,步长为2。 配置完成后,重启MySQL服务以应用改动。 接下来,我们配置备...

    MYSQL分页limit速度太慢的优化方法

    以下是一些针对MySQL `LIMIT` 分页速度慢的优化方法: 1. **避免大`OFFSET`值**: 当`OFFSET`值很大时,MySQL会跳过很多行才能到达需要返回的数据。例如,`LIMIT 200000, 10`需要扫描200010行,这是非常低效的。...

    mysql5.6 主主复制配置方法(最简单,最实用)

    - `auto-increment-offset = 1` 设置自增ID的起始值,master1为1,master2为2。 5. **重启MySQL服务**: 修改完配置后,重启MySQL服务以使更改生效。 6. **设置主从关系**: 在master1上,设置master2为主,...

    得到自增列的下一个会插入的id

    - 在MySQL中,类似的功能可以通过`LAST_INSERT_ID()`函数获取最后插入的自增ID,而`ALTER TABLE ... AUTO_INCREMENT = value`则可以修改自增列的初始值。 了解这些概念后,您可以根据业务需求有效地管理和利用自增...

    MySQL数据库常见问题汇总

    这行命令会将表`tbl`的自增字段的起始值设置为1。 **2. 实现自增长字段** 要在MySQL中创建具有自增长功能的字段,你可以按照以下步骤操作: ```sql CREATE TABLE abc ( id INT(10) NOT NULL AUTO_INCREMENT ...

    数据库从新排

    根据提供的描述“数据库从新排列,数据库从上一id挨着排”,我们可以理解为需要将某个自增字段重新设置起始值,并按照一定规则递增。这种操作通常在维护数据库完整性、优化数据结构或处理数据异常时会用到。 #### ...

    MySQL 百万级分页优化(Mysql千万级快速分页)

    这种方法通过先获取起始ID值,再基于该ID值进行查询,从而提高了查询速度。 **解决方案2:** 使用`BETWEEN`操作符进一步优化性能: ```sql SELECT * FROM table WHERE id BETWEEN 1000000 AND 1000010; ``` 相比...

Global site tag (gtag.js) - Google Analytics