mysql数据库实现nextval函数
2022/4/17 2:13:35
本文主要是介绍mysql数据库实现nextval函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在oracle中使用序列(Sequence)来处理主键字段,现在想要在Mysql中也实现类似的效果。
1、新建序列表
1 drop table if exists sequence; 2 create table sequence ( 3 seq_name VARCHAR(50) NOT NULL, -- 序列名称 4 current_val INT NOT NULL, -- 当前值 5 increment_val INT NOT NULL DEFAULT 1, -- 步长(跨度) 6 PRIMARY KEY (seq_name));
2、新增一个序列
1 INSERT INTO sequence VALUES ('seq_test', '0', '1');
3、创建currval函数,用于获取序列当前值
1 create function currval(v_seq_name VARCHAR(50)) 2 returns integer(11) 3 begin 4 declare value integer; 5 set value = 0; 6 select current_val into value from sequence where seq_name = v_seq_name; 7 return value; 8 end;
4、查询当前值
1 select currval('seq_test');
5、创建nextval函数,用于获取序列下一个值
1 create function nextval (v_seq_name VARCHAR(50)) returns integer(11) 2 begin 3 update sequence set current_val = current_val + increment_val where seq_name = v_seq_name; 4 return currval(v_seq_name); 5 end;
6、查询下一个值
1 select nextval('seq_test');
这篇关于mysql数据库实现nextval函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-26MySQL查出时间比实际晚8小时的解决方案
- 2024-04-01JPA不识别MySQL的枚举类型
- 2024-03-30mysql数据库表卡死解决方法
- 2024-03-15MySQL多数据源笔记5-ShardingJDBC实战
- 2024-03-11natural join mysql
- 2024-03-11关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
- 2024-02-26mysql 阿里云xb后缀备份文件恢复-icode9专业技术文章分享
- 2024-02-22docker mysql 5.7
- 2024-02-18从 20 多套 MySQL 到 1 套 TiDB丨骏伯网络综合运营管理平台应用实践
- 2024-02-07mysql 外键索引入门介绍,为什么工作中很少有人使用?