Mysql中使用sql语句生成雪花算法Id

??简介:java系列技术分享(??持续更新中…??)
??初衷:一起学习、一起进步、坚持不懈
??如果文章内容有误与您的想法不一致,欢迎大家在评论区指正??
??希望这篇文章对你有所帮助,欢迎点赞 ?? 收藏 留言 ??

??更多文章请点击
[这里是图片002]

文章目录
  • 一、雪花算法简介
  • 二、问题描述(项目场景)
  • 三、sql生成雪花算法(已验证)
    • 3.1 存储函数创建
    • 3.2 测试生成雪花id
  • 四、实际应用

一、雪花算法简介

雪花算法(Snowflake)是一种生成全局唯一ID的分布式算法。它的主要功能是在分布式系统中生成一个全局唯一的ID,且ID是按照时间有序递增的。

Snowflake算法使用一个64位的二进制数字作为ID。这64位long型ID被分割成四个部分:符号位、时间戳、工作机器ID、序列号。通过这几部分来表示不同的信息,将数据映射到具有特定结构的分布式系统中,实现数据的存储和查询。

二、问题描述(项目场景)

将A表中的指定数据补偿到B表中,B表id是bigint类型的雪花算法(原始数据是代码生成的雪花算法id),我这里只做补偿使用sql实现,

这里就需要给id赋值,并且满足之前原表的数据规则

insert into select -将一个表的数据添加到另外一个表中

-- insert into select -将一个表的数据添加到另外一个表中 insert into table_name2(id, project_code) select 雪花算法id, project_code from table_name1 where type = 1;

三、sql生成雪花算法(已验证)

3.1 存储函数创建

SET @last_timestamp = -1; -- 初始化全局变量 SET @sequence = 0; -- 初始化全局变量 DROP FUNCTION IF EXISTS generate_snowflake_id; DELIMITER // CREATE FUNCTION generate_snowflake_id() RETURNS BIGINT READS SQL DATA BEGIN DECLARE timestamp BIGINT; DECLARE machine_id BIGINT DEFAULT 1; -- 假设机器 ID 为 1 DECLARE data_center_id BIGINT DEFAULT 0; -- 假设数据中心 ID 为 0 DECLARE epoch BIGINT DEFAULT 1288834974657; -- 2010-01-01 00:00:00 UTC 的毫秒数 -- 获取当前时间戳(毫秒) SET timestamp = FLOOR(UNIX_TIMESTAMP(NOW(3)) * 1000) - epoch; -- 检查当前时间戳 IF timestamp = @last_timestamp THEN SET @sequence = (@sequence + 1) % 4096; -- 在同一毫秒内递增序列号 ELSE SET @sequence = 0; -- 不同毫秒重置序列号 END IF; SET @last_timestamp = timestamp; -- 存储当前时间戳 -- 生成雪花 ID RETURN (timestamp << 22) | (data_center_id << 17) | (machine_id << 12) | @sequence; END // DELIMITER ;

3.2 测试生成雪花id

-- 测试生成 Snowflake ID SELECT generate_snowflake_id();

四、实际应用

insert into table_name2(id, project_code) select generate_snowflake_id(), project_code from table_name1 where type = 1;

成功添加

[这里是图片008]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1131536.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nacos实例缓存

由于远程调用用RestTemplate请求注册中心获取微服务地址列表用RestTemplate给对方服务的某个地址发送请求每次调用都要请求两次&#xff0c;会非常耗费性能所以第一次获取实例列表之后&#xff0c;缓存一下&#xff0c;就不用再获取了|而实例缓存要做的就是&#xff0c;和注册中…

MySQL下载安装及配置

1.官网下载https://dev.mysql.com/downloads/mysql/2.下载解压安装包3.把下载文件打开&#xff0c;进入到bin文件中&#xff0c;将文件路径复制到系统变量path中4. 在MySQLmysql-9.1.0-winx64文件夹的根目录下&#xff0c;新建一个my.ini文件&#xff0c;把下面内容复制到文件中…

标杆案例 | 长江产业集团数智化转型驱动国企人力资源管理新范式

当前&#xff0c;数字经济加速渗透各行各业&#xff0c;人力资源管理数字化已成为企业顺应技术变革、支撑战略落地的关键路径。作为扎根长江经济带、深耕产业升级的重要力量&#xff0c;长江产业集团将人力资源数字化建设纳入深化改革的重要举措&#xff0c;携手红海云以新一代…

进口标致专修全系车型维修手册诊断手册电路图资料库上线更新RCZ 206CC 206GTi 308CC 308SW 407 4008 607 207CC 3008 207SW 208 307CC 307

资料来源&#xff1a;汽修帮手资料库汽修帮手资料库提供各大厂家车型维修手册、电路图、新车特征、车身钣金维修数据、全车拆装、扭力、发动机大修、发动机正时、保养、电路图、针脚定义、模块传感器、保险丝盒图解对照表位置等&#xff0c;并长期保持高频率资料更新该车系资料…

mysql之如何获知版本

你可以通过在 MySQL 命令行客户端执行简单的 SQL 查询来获取 MySQL 的版本信息。以下是获取 MySQL 版本的常见方法&#xff1a; 使用 SELECT VERSION(); 查询&#xff1a; SELECT VERSION();执行这个查询后&#xff0c;MySQL 会返回一个字符串&#xff0c;其中包含了 MySQL 服务…

2025年比亚迪全系更新上线维修手册电路图钣金手册故障诊断支持超链接跳转宋L 海豹 汉EV 唐-新能源 驱逐舰05 海鸥 海豚 元PLUS 汉DM 宋PLUS

资料来源&#xff1a;汽修帮手资料库汽修帮手资料库提供各大厂家车型维修手册、电路图、新车特征、车身钣金维修数据、全车拆装、扭力、发动机大修、发动机正时、保养、电路图、针脚定义、模块传感器、保险丝盒图解对照表位置等&#xff0c;并长期保持高频率资料更新该车系资料…

JSON.parse() 方法详解

JSON.parse() 方法详解 概述 JSON.parse() 是 JavaScript 中用于将 JSON 字符串解析成 JavaScript 对象的内置方法。在处理 JSON 数据时,这是一个非常常用的方法。本文将详细解释 JSON.parse() 的用法、注意事项以及在实际应用中的示例。 语法 JSON.parse(text[, reviver]…

大数据领域 OLAP 的高可用性架构设计

大数据OLAP高可用性架构设计:从理论到落地的完整指南 引言:从一次凌晨宕机说起 凌晨3点,你被刺耳的告警声惊醒——业务方的实时Dashboard突然无法加载,核心指标“实时订单转化率”显示为空白。打开监控系统一看:ClickHouse集群的1号分片主节点宕机,而副本同步延迟高达5…

交通仿真软件:Aimsun_(19).交通仿真软件在规划中的应用

交通仿真软件在规划中的应用 1. 交通需求模型的建立 在交通规划中&#xff0c;交通需求模型是预测未来交通流量的重要工具。Aimsun 提供了强大的交通需求建模功能&#xff0c;可以帮助规划师准确预测各种交通情景下的需求。交通需求模型通常包括以下几个步骤&#xff1a;数据收…

长安睿行EM60 睿行EM8 0睿行ES30 睿行M60 睿行M70 睿行M80 睿行M90 睿行S50维修手册电路图针脚定义大修正时螺丝扭力拆装步骤线路保险丝图解模块位置更新

资料来源&#xff1a;汽修帮手资料库汽修帮手资料库提供各大厂家车型维修手册、电路图、新车特征、车身钣金维修数据、全车拆装、扭力、发动机大修、发动机正时、保养、电路图、针脚定义、模块传感器、保险丝盒图解对照表位置等&#xff0c;并长期保持高频率资料更新覆盖车型&a…

交通仿真软件:Aimsun_(13).网络优化与设计

网络优化与设计 1. 网络建模基础 在网络优化与设计中&#xff0c;网络建模是基础步骤之一。Aimsun 提供了丰富的工具和功能来帮助用户构建和优化交通网络模型。本节将详细介绍网络建模的基本原理和步骤&#xff0c;并通过具体示例来展示如何使用 Aimsun 进行网络建模。 1.1 网络…

深度学习毕设项目推荐-基于机器学习的印刷体数字和字母识别基于python深度学习的印刷体数字和字母识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

长安凯程神骐维修手册电路图资料更新神骐ET20 神骐F30 神骐PLUS 神骐T10 神骐T20 神骐T30拆装步骤螺丝扭力针脚定义保险丝图解发动机大修螺丝扭力正时校对

资料来源&#xff1a;汽修帮手资料库汽修帮手资料库提供各大厂家车型维修手册、电路图、新车特征、车身钣金维修数据、全车拆装、扭力、发动机大修、发动机正时、保养、电路图、针脚定义、模块传感器、保险丝盒图解对照表位置等&#xff0c;并长期保持高频率资料更新覆盖车型&a…

深度学习毕设项目推荐-基于人工智能python深度学习的猫狗表情识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

2026年AI面试如何选?五大黄金标准与避坑指南

面对市面上数十款AI面试工具&#xff0c;宣传都“智能、高效、精准”&#xff0c;但实际效果天差地别。某企业采购后发现&#xff1a;AI只会机械提问&#xff0c;无法追问&#xff1b;报告空洞&#xff0c;HR仍要重看视频&#xff1b;候选人抱怨体验差&#xff0c;放弃率反升。…

数码宣传图素材推荐:解锁让产品画面更有故事感的视觉灵感

《美文美图每日一推》今天推荐的是关于数码产品宣传图的图片素材&#xff0c;共有5张内容&#xff0c;如果有宝子们想要商用记得需要获摄图网版权授权©后呦!!!&#x1f3e2;&#xff0c; 当然你也可以在平台检索当前主题:#数码产品边角# #深夜书桌# #屏幕边缘光影# #窗台风…

金融级IP离线库深度测评:IP数据云 vs IPnews vs MaxMind

在金融风控、反欺诈及政企安全等对数据准确性与安全性要求极高的场景下&#xff0c;IP地址的精准解析是构建业务防线的基石。面对市场上众多的IP数据库&#xff0c;如何选择一款既能满足高精度要求&#xff0c;又能保障数据安全与合规的“金融级”离线库&#xff0c;是技术决策…

快递柜扫码取件,怎样用IP查询定位比对收货地址GPS防“代签”?

在我们公司参与智能硬件与本地生活相关系统建设的过程中&#xff0c;“快递柜扫码取件防代签”是一个被反复讨论、却很容易被低估复杂度的场景。尤其是在实际落地时&#xff0c;我们发现&#xff1a;仅依赖二维码或手机号校验&#xff0c;并不足以应对有组织的代签、冒领行为。…

(新卷,200分)- 模拟目录管理功能(Java JS Python C)

(新卷,200分)- 模拟目录管理功能&#xff08;Java & JS & Python & C&#xff09;题目描述实现一个模拟目录管理功能的软件&#xff0c;输入一个命令序列&#xff0c;输出最后一条命令运行结果。支持命令&#xff1a;创建目录命令&#xff1a;mkdir 目录名称&#…

HTML 语言代码:全面解析与使用指南

HTML 语言代码:全面解析与使用指南 引言 HTML,即超文本标记语言(HyperText Markup Language),是构成网页内容的基石。自从1990年由蒂姆伯纳斯-李发明以来,HTML一直是网络世界的标准语言。本文将全面解析HTML语言代码,涵盖其基本结构、常用标签、属性以及编写技巧,旨在…