(4.24)【mysql、sql server】分布式全局唯一ID生成方案

参考:分布式全局唯一ID生成方案:https://blog.csdn.net/linzhiqiang0316/article/details/80425437

 分表生成唯一ID方案

 sql server:

复制代码
-- 构造中间表,SYS_USERS_GOODS_IDENTITY(itemId bigint identity(1,1),now_date datetime) 
1.@@identity
2.SCOPE_IDENTITY()
3.(4.17)sql server中的uuid获取与使用
案例代码:

INSERT
INTO SYS_USERS_GOODS_IDENTITY SELECT GETDATE() SELECT @ItemID=@@identity
当运行完插入语句后,执行select
@@identity就可得到自动生成的id
如果是sql server 最好用:
select SCOPE_IDENTITY() as id 因为@@identity全局的 同类还有IDENT_CURRENT(‘table’) IDENT_CURRENT('tab_name') 返回为任何会话和任何作用域中的特定表最后生成的标识值。IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。 @@IDENTITY 返回为当前会话的所有作用域中的任何表最后生成的标识值。 SCOPE_IDENTITY() 返回为当前会话和当前作用域中的任何表最后生成的标识值 SCOPE_IDENTITY()@@IDENTITY 返回在当前会话中的任何表内所生成的最后一个标识值。但是,SCOPE_IDENTITY 只返回插入到当前作用域中的值;@@IDENTITY 不受限于特定的作用域。
复制代码

 

mysql:

复制代码
1. select @@identity;
2. select last_insert_id();

多人同时写的话,不会相互影响。LAST_INSERT_ID();  是 connection 级的变量,各个不同连接相互之间不影响

其实不加事务也可以。
案例:
start transaction;
insert into login_log_tb(server_name) values ('服务器');
select LAST_INSERT_ID(); 
commit;
复制代码

 

posted @   郭大侠1  阅读(693)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2018-05-21 关于uuid与自增列的选择
点击右上角即可分享
微信分享提示