MySQL 序列(AUTO_INCREMENT)的使用示例
核心基础本质:mysql 无内置序列类型,通过auto_increment模拟自增数字序列;约束:一张表仅 1 个自增主键列,列类型为整数(int/bigint/unsigned int);特性:删除
核心基础
- 本质:mysql 无内置序列类型,通过
auto_increment模拟自增数字序列; - 约束:一张表仅 1 个自增主键列,列类型为整数(int/bigint/unsigned int);
- 特性:删除数据后自增值不回退,手动修改易引发唯一性冲突。
一、auto_increment 基础使用
1. 创建含自增列的表
create table insect (
id int unsigned not null auto_increment,
primary key (id),
name varchar(30) not null,
date date not null,
origin varchar(30) not null
);
2. 插入数据(省略自增列值)
insert into insect (id,name,date,origin)
values (null,'housefly','2001-09-10','kitchen');
二、自增值获取
| 场景 | 核心语句 / 方法 |
|---|
| 客户端查刚插入值 | select last_insert_id(); |
| 客户端查表当前值 | show table status like '表名';(看 auto_increment 列) |
三、序列操作
1. 重置序列(谨慎:并发插入易混乱)
alter table insect drop id;
alter table insect
add id int unsigned not null auto_increment first,
add primary key (id);
2. 设置序列起始值
| 操作时机 | 语句示例 |
|---|
| 建表时指定 | create table insect (...) engine=innodb auto_increment=100 charset=utf8; |
| 建表后修改 | alter table insect auto_increment = 100; |
四、扩展:自定义序列管理(批量 / 自定义幅度)
1. 建序列管理表
drop table if exists sequence;
create table sequence (
name varchar(50) not null,
current_value int not null,
increment int not null default 1,
primary key (name)
) engine=innodb;
2. 核心函数
| 函数名 | 作用 | 关键逻辑 |
|---|
| currval | 查序列当前值 | select current_value from sequence where name = seq_name; |
| nextval | 查下一个值(自动累加) | update sequence set current_value += increment where name = seq_name; |
| setval | 设序列当前值 | update sequence set current_value = value where name = seq_name; |
3. 测试示例
insert into sequence values ('testseq', 0, 1); -- 添加序列
select setval('testseq', 10); -- 设初始值10
select currval('testseq'); -- 查当前值
select nextval('testseq'); -- 查下一个值
复习速记提示
- 自增列必为整数 + 主键,一张表仅一个;
- 重置序列需删列重建,避免并发操作;
- 自定义序列适合批量管理、自定义自增幅度场景。
到此这篇关于mysql 序列(auto_increment)的使用示例的文章就介绍到这了,更多相关mysql 序列 内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
相关文章:
-
mysql半同步复制的项目实践
题目详细答案工作流程(1)从库会在连接到主库时告诉主库,它是不是配置了半同步。(2)如果半同步复制在主库端开启,并且至少有一个半同步复制的从库节点,那么此时主库...
[阅读全文]
-
-
-
-
-
Nginx内置变量应用场景分析
nginx 的内置变量是其配置灵活性的核心,它们提供了丰富的客户端请求和服务器状态信息。下述表格汇总了这些变量,并附带了实用的分类和说明,方便快速查阅和使用。1...
[阅读全文]
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论