mysql全局唯一id_Mysql实现全局唯一ID
因为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 utf8
begin
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
参考资料
mysql全局唯一id_Mysql实现全局唯一ID相关推荐
- mysql 分表 id_MySQL分表自增ID解决方案
当我们对MySQL进行分表操作后,将不能依赖MySQL的自动增量来产生唯一ID了,因为数据已经分散到多个表中. 应尽量避免使用自增ID来做为主键,为数据库分表操作带来极大的不便. 在postgreSQ ...
- mysql关联表id_mysql join联表 + id自增
join的写法 如果用left join 左边的表一定是驱动表吗?两个表的join包含多个条件的等值匹配,都要写道on还是只把一个写到on,其余写道where部分? createtablea(f1in ...
- 高并发分布式系统中生成全局唯一(订单号)Id
2019独角兽企业重金招聘Python工程师标准>>> 高并发分布式系统中生成全局唯一(订单号)Id 1.GUID数据因毫无规律可言造成索引效率低下,影响了系统的性能,那么通过组合的 ...
- mysql 分布式 生成序号_分布式唯一ID生成方案
唯一ID在业务系统中经常用到,例如数据库的唯一主键,那么唯一ID如何生成,我们这里介绍一些常见的实现方案. 字符串ID 如果采用字符串id,那么很简单,直接使用jdk自带的UUID,原始生成的是带中划 ...
- MySQL添加唯一约束和联合唯一约束(建表后添加)
MySQL:添加唯一约束和联合唯一约束 在MySQL数据库中,经常会碰到由于业务需要添加唯一键约束,唯一键约束,可以在一个列上添加约束,也可以在多个列上添加唯一约束. 单列唯一约束 在一列上添加唯一约 ...
- mysql中怎样查看和删除唯一索引
mysql中怎样查看和删除唯一索引. 查看唯一索引: show index from mytable;//mytable 是表名 查询结果例如以下: 查询到唯一索引后,怎样删除唯一索引呢,使用例如以下 ...
- mysql 锁 行级_全局锁、表级锁、行级锁mysql 极客评论笔记
根据加锁范围:MySQL里面的锁可以分为: 一.全局锁: 对整个数据库实例加锁. MySQL提供加全局读锁的方法:Flush tables with read lock(FTWRL) 这个命令可以使整 ...
- MySql 应该选择普通索引 还是唯一 索引???
在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天.每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不 ...
- mysql中主键约束和唯一约束的区别_主键约束和唯一性约束的区别
1.主键约束(PRIMARY KEY) 1) 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键. 2) 是不可能(或很难)更新. 3) 主键列上没有任何两行具有相同值(即重复值),不允许空 ...
最新文章
- 【Binder 机制】Native 层 Binder 机制分析 ( binder_loop | svcmgr_handler | binder.c | binder_parse )
- Linux 中内核级加强型火墙的管理
- logback AbstractLogstashTcpSocketAppender 源码解析
- Spring Boot 注解(1)
- windows和Linux查看端口占用进程并关闭
- C++之函数返回数组
- c语言handler指针,typedef与指向函数的指针结合的妙用
- C++智能指针的“GC”
- oracle导入dmp文件数据,dmp文件导入Oracle数据库
- 在.Net中json应用测试整理
- 微计算机原理及应用大纲,《微型计算机原理及应用》考试大纲
- 【IT之路】LoadRunner系列-Win7 64bit下搭建Loadrunner11破解版
- MATLAB GUI中显示数学公式
- 分享舍得网开发经验(修改版)(转载)
- C#学习笔记(三)—–C#高级特性:dynamic
- TJ Wi-Fi不能使用的解决的办法
- 删除Windows10系统中Wifi名称后边的数字
- 小米路由器开启DDNS并支持二级路由
- Android蓝牙打印机功能开发完整Demo
- LTE FDD PSS/SSS/MIB时频资源位置
热门文章
- 只知道ajax?你已经out了
- win7下注册一个com失败,权限不够
- HOT!闲来无聊,总结了下10个作为网民不得不知道的网址
- Scrapy爬取姓名大全,看看那个名字最受父母青睐
- Ubuntu21.04 deepin-wine 微信输入中文乱码,黑块,和多余窗口问题解决
- kafka日志和数据分离
- 【收藏】keepalived配置文件解读
- 【收藏】Harbor私有仓库中如何彻底删除镜像释放存储空间:vmware/registry:2.6.2-photon进行垃圾回收
- spark RDD的血缘关系
- 【资源下载】K8S部署InfluxDB1.8.4完整步骤及部署清单文件下载