因为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相关推荐

  1. mysql 分表 id_MySQL分表自增ID解决方案

    当我们对MySQL进行分表操作后,将不能依赖MySQL的自动增量来产生唯一ID了,因为数据已经分散到多个表中. 应尽量避免使用自增ID来做为主键,为数据库分表操作带来极大的不便. 在postgreSQ ...

  2. mysql关联表id_mysql join联表 + id自增

    join的写法 如果用left join 左边的表一定是驱动表吗?两个表的join包含多个条件的等值匹配,都要写道on还是只把一个写到on,其余写道where部分? createtablea(f1in ...

  3. 高并发分布式系统中生成全局唯一(订单号)Id

    2019独角兽企业重金招聘Python工程师标准>>> 高并发分布式系统中生成全局唯一(订单号)Id 1.GUID数据因毫无规律可言造成索引效率低下,影响了系统的性能,那么通过组合的 ...

  4. mysql 分布式 生成序号_分布式唯一ID生成方案

    唯一ID在业务系统中经常用到,例如数据库的唯一主键,那么唯一ID如何生成,我们这里介绍一些常见的实现方案. 字符串ID 如果采用字符串id,那么很简单,直接使用jdk自带的UUID,原始生成的是带中划 ...

  5. MySQL添加唯一约束和联合唯一约束(建表后添加)

    MySQL:添加唯一约束和联合唯一约束 在MySQL数据库中,经常会碰到由于业务需要添加唯一键约束,唯一键约束,可以在一个列上添加约束,也可以在多个列上添加唯一约束. 单列唯一约束 在一列上添加唯一约 ...

  6. mysql中怎样查看和删除唯一索引

    mysql中怎样查看和删除唯一索引. 查看唯一索引: show index from mytable;//mytable 是表名 查询结果例如以下: 查询到唯一索引后,怎样删除唯一索引呢,使用例如以下 ...

  7. mysql 锁 行级_全局锁、表级锁、行级锁mysql 极客评论笔记

    根据加锁范围:MySQL里面的锁可以分为: 一.全局锁: 对整个数据库实例加锁. MySQL提供加全局读锁的方法:Flush tables with read lock(FTWRL) 这个命令可以使整 ...

  8. MySql 应该选择普通索引 还是唯一 索引???

    在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天.每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不 ...

  9. mysql中主键约束和唯一约束的区别_主键约束和唯一性约束的区别

    1.主键约束(PRIMARY KEY) 1) 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键. 2) 是不可能(或很难)更新. 3) 主键列上没有任何两行具有相同值(即重复值),不允许空 ...

最新文章

  1. 【Binder 机制】Native 层 Binder 机制分析 ( binder_loop | svcmgr_handler | binder.c | binder_parse )
  2. Linux 中内核级加强型火墙的管理
  3. logback AbstractLogstashTcpSocketAppender 源码解析
  4. Spring Boot 注解(1)
  5. windows和Linux查看端口占用进程并关闭
  6. C++之函数返回数组
  7. c语言handler指针,typedef与指向函数的指针结合的妙用
  8. C++智能指针的“GC”
  9. oracle导入dmp文件数据,dmp文件导入Oracle数据库
  10. 在.Net中json应用测试整理
  11. 微计算机原理及应用大纲,《微型计算机原理及应用》考试大纲
  12. 【IT之路】LoadRunner系列-Win7 64bit下搭建Loadrunner11破解版
  13. MATLAB GUI中显示数学公式
  14. 分享舍得网开发经验(修改版)(转载)
  15. C#学习笔记(三)—–C#高级特性:dynamic
  16. TJ Wi-Fi不能使用的解决的办法
  17. 删除Windows10系统中Wifi名称后边的数字
  18. 小米路由器开启DDNS并支持二级路由
  19. Android蓝牙打印机功能开发完整Demo
  20. LTE FDD PSS/SSS/MIB时频资源位置

热门文章

  1. 只知道ajax?你已经out了
  2. win7下注册一个com失败,权限不够
  3. HOT!闲来无聊,总结了下10个作为网民不得不知道的网址
  4. Scrapy爬取姓名大全,看看那个名字最受父母青睐
  5. Ubuntu21.04 deepin-wine 微信输入中文乱码,黑块,和多余窗口问题解决
  6. kafka日志和数据分离
  7. 【收藏】keepalived配置文件解读
  8. 【收藏】Harbor私有仓库中如何彻底删除镜像释放存储空间:vmware/registry:2.6.2-photon进行垃圾回收
  9. spark RDD的血缘关系
  10. 【资源下载】K8S部署InfluxDB1.8.4完整步骤及部署清单文件下载