Mysql如何重新设置表格id自增?

本文介绍了如何在创建和修改数据库表结构时,解决id字段自增中断的问题。步骤包括删除原有自增列、设置新的主键属性并确保连续增长。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建表格:

create database Word;
use Word;
create table  if not exists words
(
id BIGINT(10) NOT NULL AUTO_INCREMENT COMMENT 'ID',
word VARCHAR(100) DEFAULT NULL COMMENT "单词",
word_charset TEXT(16383) DEFAULT NULL COMMENT "单词词性",
PRIMARY KEY(id)
)ENGINE=INNODB;

如果在插入数据的过程中id中间有间断需重新实现自增

首先:我们需要删除设置的自增行: 

alter table words drop column id;

其次:

  • 设置id是primary-key->主键
  • 设置id是nut null->非空
  • 设置id是auto_increment->可自增
  • 设置id是first->位于表格中的列首
alter table words add column id bigint(10) primary key not null auto_increment first;

最后,我们就会发现表格中的id就没有间断的增长了!

### 如何在 Navicat 17 中设置 MySQL 表的 ID 自动递 #### 设置 ID 字段为自动递 为了使 `ID` 字段具备自动递功能,在创建或编辑表时需将该字段定义为整数类型,并启用自动递属性。具体操作如下: - 打开 Navicat 并连接至目标数据库。 - 创建新表或选择已有表格进入其设计视图。 - 定位到希望设为自列的那一栏(通常是主键),将其数据类型设定为整型,如 INT 或 BIGINT[^1]。 ```sql CREATE TABLE example ( id INT AUTO_INCREMENT, name VARCHAR(255), PRIMARY KEY (id) ); ``` 对于现有表,则可通过 ALTER 命令来实现相同效果: ```sql ALTER TABLE existing_table MODIFY COLUMN id INT NOT NULL AUTO_INCREMENT; ``` #### 解决删除记录后的自值异常 如果曾经执行过多次插入操作造成编号跳跃,即使清除了多余项也无法重置计数器。针对此现象,可采取措施调整起始位置以匹配当前最大值加一的位置[^2]: ```sql SET @COUNT = 0; UPDATE your_table SET id = (@COUNT:=@COUNT + 1) ORDER BY id ASC; ALTER TABLE your_table AUTO_INCREMENT = MAX(id)+1 FROM your_table; ``` 请注意上述 SQL 片段中的 `your_table` 应替换为实际使用的表名。 #### 处理保存更改失败的情况 有时用户报告说尝试修改自动量初值却总是被还原成默认状态;实际上这并不影响后台配置的成功应用——尽管界面上显示未改变,但新记录仍会遵循所指定的新起点继续累加下去[^3].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值