MySql唯一ID生成

本文探讨了如何在MySQL中创建一个类似于自增ID但不受数据库切换影响的唯一ID生成策略。通过在MariaDB上实验,作者使用存储过程确保在多线程环境下生成的ID保持唯一且连续,经过测试证明这种方法可行。作者欢迎分享其他方法,以促进技术交流和进步。
摘要由CSDN通过智能技术生成

前阵子,一直在折腾阿里云。写的一些文章也放到自己的wordpress博客上了。但自己前阵子在做系统更换操作的时候未备份磁盘,大部分心血付诸东流。真是一个悲伤的故事。现在决定用.NET搞搞自己的博客。正好把wordpress给抛弃掉。


言归正传,这个唯一号类似自增ID,自增id虽然好用,但进行数据库切换(SQL换Mysql等等)的时候,参与具体业务逻辑的这个东西说不定就是一个定时炸弹。但如果我们自己人为规定一个唯一ID,来代替系统的自增ID呢?有以下的要求,任何情况下产生的ID不重复;跟自增ID类似,逐个增加。


我拿mariadb做的实验。这个跟MySql语法一样。CentOS 7以后只有他了。将就一下吧。

该表一个字段存表名,一个字段存最大ID

首先建表SQL

-- 字段comment 后面没等号。。。
-- default 不加括号
-- 不特殊标明,Status字段意思为 0:正常;1:删除
-- MySql约束,名字在前,列在括号内

create table `Num`(
  Id int AUTO_INCREMENT not null
  ,Name varchar(100) not null comment '表名'
  ,Num bigint not null default 0 comment '该表对应的编号'
  ,Status int default 0 not null
  ,primary key `P_Id`(`Id`)
  ,unique key `U_Name`(`Name`)
)ENGINE=InnoDB DEFAUL
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值