Mysql实现全局唯一ID
来源:互联网 发布:java技术 编辑:程序博客网 时间:2024/05/18 01:24
https://segmentfault.com/a/1190000004201384
因为MYSQL没有ORACLE中的sequence概念,所以需要建立一个表来模拟sequence,同时也可以作为高位数据保存。
CREATE TABLE IF NOT EXISTS `sys_sequence` ( `id` int(11) unsigned NOT NULL, `no` varchar(4) NOT NULL DEFAULT '', `name` varchar(64) NOT NULL DEFAULT '') ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;ALTER TABLE `sys_sequence` ADD PRIMARY KEY (`id`);
创建MYSQL函数:create function `get_sequence`(`in_name` varchar(64)) returns varchar(16) charset utf8begin declare p_last_id int; declare p_no varchar(4); declare p_result varchar(16); declare p_max_no int; insert into sys_sequence () values (); select last_insert_id() into p_last_id; delete from sys_sequence where id = p_last_id; if(in_name is not null and in_name <> '') then select no into p_no from sys_sequence where name = in_name; if(p_no is null) then select max(cast(no as unsigned)) into p_max_no from sys_sequence; set p_no = lpad(p_max_no + 1, 4, 0); insert into sys_sequence (no, name) values (p_no, in_name); end if; else set p_no = '0000'; end if; set p_result = concat(p_no, lpad(p_last_id, 12, 0)); return p_result;end
参考资料
数据库唯一ID的实现思路
全局唯一ID生成方案对比
Ticket Servers: Distributed Unique Primary Keys on the Cheap
阅读全文
0 0
- Mysql实现全局唯一ID
- php uniqid() 通过MYSQL实现全局不重复的唯一ID
- 生成全局唯一Id
- 全局唯一ID生成器
- mysql全局唯一ID生成方案(一)
- mysql全局唯一ID生成方案(二)
- flickr的分表全局唯一id实现方式
- DRDS生成全局唯一ID
- 全局唯一ID生成方案
- MySql唯一ID生成
- Twitter的分布式自增ID算法Snowflake的PHP实现,Snowflake PHP版本,高并发唯一id,全局唯一id,不重复id
- MongoDB文档(Document)全局唯一ID
- 生成全局唯一的ID,java 中
- 全局唯一ID的生成方式
- 全局唯一ID的生成策略对比
- 全局唯一ID生成方案对比
- 全局唯一ID生成方案对比
- 基于DB的全局唯一id
- 微信小程序 收藏成功提示(九)
- 递归
- 机器学习:误差分析
- Building Graphs
- 妈妈回忆录1
- Mysql实现全局唯一ID
- fliter过滤器过滤未登录用户
- LeetCode [DP]322. Coin Change
- JAVA命令参数详解:-D
- uGUI Text富文本的顶点数优化的优化
- dicom文件tag详解
- vm如何安装xenserver
- FTP命令字和响应码解释
- 《深入理解Java虚拟机》->Java内存区域与内存溢出异常