Mysql中使用sql语句生成雪花算法Id
🍓 简介:java系列技术分享(👉持续更新中…🔥)
🍓 初衷:一起学习、一起进步、坚持不懈
🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏
🍓 希望这篇文章对你有所帮助,欢迎点赞 👍 收藏 ⭐留言 📝🍓 更多文章请点击
文章目录
- 一、雪花算法简介
- 二、问题描述(项目场景)
- 三、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 BIGINTREADS SQL DATA
BEGINDECLARE timestamp BIGINT;DECLARE machine_id BIGINT DEFAULT 1; -- 假设机器 ID 为 1DECLARE data_center_id BIGINT DEFAULT 0; -- 假设数据中心 ID 为 0DECLARE epoch BIGINT DEFAULT 1288834974657;-- 2010-01-01 00:00:00 UTC 的毫秒数-- 获取当前时间戳(毫秒)SET timestamp = FLOOR(UNIX_TIMESTAMP(NOW(3)) * 1000) - epoch;-- 检查当前时间戳IF timestamp = @last_timestamp THENSET @sequence = (@sequence + 1) % 4096; -- 在同一毫秒内递增序列号ELSESET @sequence = 0; -- 不同毫秒重置序列号END IF;SET @last_timestamp = timestamp;-- 存储当前时间戳-- 生成雪花 IDRETURN (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;
成功添加


![]()

相关文章:
Mysql中使用sql语句生成雪花算法Id
🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…...
/etc/profile vs ~/.bashrc:如何正确使用?
在 Linux 或 WSL 环境中,我们经常需要配置环境变量、命令别名、路径等信息。然而,许多人在配置时会纠结:到底应该放在 /etc/profile 还是 ~/.bashrc?本文将全面解析它们的区别,并帮助你做出正确的选择。 1. 什么是 /et…...
SpringBoot实战:高效获取视频资源
文章目录 前言技术实现SpringBoot项目构建产品选取配置数据采集 号外号外 前言 在短视频行业高速发展的背景下,海量内容数据日益增长,每天都有新的视频、评论、点赞、分享等数据涌现。如何高效、精准地获取并处理这些庞大的数据,已成为各大平…...
Flutter_学习记录_数据更新的学习
Flutter 如果界面上有数据更新时,目前学习到的有3种: 第一种: 直接用 StatefulWidget组件,然后当数据更新时,调用setState的方法更新数据,页面上的数据会直接更新;第二种: 用 State…...
c++ 多线程知识汇总
一、std::thread std::thread 是 C11 引入的标准库中的线程类,用于创建和管理线程 1. 带参数的构造函数 template <class F, class... Args> std::thread::thread(F&& f, Args&&... args);F&& f:线程要执行的函数&…...
day09_实时类标签/指标
文章目录 day09_实时类标签/指标一、日志数据实时采集2、Flume简介2.3 项目日志数据采集Flume配置2.3.1 涉及的Flume组件和参数2.3.2 Nginx日志采集2.3.3 用户行为日志采集 二、Nginx日志数据统计1、日志格式说明2、数据ETL2.1 日志抽取2.1.1 正则表达式2.1.2 基于Spark实现Ngi…...
【前端开发学习笔记16】Vue_9
文章分类架子 多个页面复用,封装成组件: props 定制标题默认插槽 default 定制内容主体具名插槽 extra 定制按钮 <template><el-card class"page-container"><template #header><div class"header"><s…...
Bash 中的运算方式
目录 概述: 1. (()) 运算符 2. let 命令 3. expr 命令 4. $[] 直接运算 5. bc(计算器,支持浮点数) 6. awk(强大的文本处理工具,也可计算) 概述: Bash 本身只支持整数运算&am…...
2025年3月营销灵感日历
2025年的第一场营销大战已经拉开帷幕了! 三月可是全年最值钱的营销黄金月——妇女节、植树节、315消费者日三大爆点连击,还有春分、睡眠日、世界诗歌日等20隐藏流量密码。 道叔连夜扒了18个行业数据,整理了这份《2025年3月营销灵感日历》&a…...
MySQL的innoDB引擎
一、逻辑存储结构 表空间:ibd文件,一个MySQL实例可以对应多个表空间,用于存储记录,索引等数据; 段:分为数据段(leaf node segment)、索引段(non-leaf node segment)、回滚段(rollback segment),innodb是索引组织表,数据段就是B+树的非叶子节点。段用来管理多个e…...
HCIA项目实践---OSPF的知识和原理总结
9.5 OSPF 9.5.1 从哪些角度评判一个动态路由协议的好坏? (1)选路佳(是否会出环) OSPF 协议采用链路状态算法,通过收集网络拓扑信息来计算最短路径,从根本上避免了路由环路的产生。 (…...
hexo 魔改 | 修改卡片透明度
hexo 魔改 | 修改卡片透明度 ** 博客食物用更佳 博客地址 ** 这是笔者自己瞎倒腾的。作为前端菜鸡一枚,大佬们随便看看就好~ 我用的主题是 butterfly 4.12.0 分析 通过开发者工具可以看出来卡片的背景和 --card-bg 变量有关 再在 sources 下的 css 文件夹下的…...
今日AI和商界事件(2025-02-13)
今日AI领域的主要事件包括: 一、OpenAI相关动态 取消独立发布o3模型计划: OpenAI首席执行官奥尔特曼宣布,公司取消独立发布o3模型的计划。未来几个月内,OpenAI将推出GPT-5,该模型将整合多项技术,并应用于C…...
38.日常算法
1.最短无序连续子数组 题目来源 给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的 最短 子数组,并输出它的长度。 示例 1: 输入…...
如何构建有效的人工智能代理
目录 什么是 AI 代理? 何时应使用 AI 代理? 人工智能代理的构建模块 构建 AI 代理的常用方法 1. 提示链接(分步说明) 2.路由(将任务发送到正确的地方) 3.并行处理(同时做多件事) 4. 协调者和工作者 AI(团队合作) 5. 评估器和优化器(修复错误) 如何让人工…...
qt 事件的传递顺序
在 Qt 中,事件的传递顺序遵循以下基本规则: 事件的产生:当用户与界面交互时,操作(如鼠标点击、键盘输入等)会生成相应的事件(如 QMouseEvent、QKeyEvent 等)。 事件的传递顺序&…...
全面掌握Flutter开发:从核心原理到跨平台实战,构建高效应用
文章目录 引言 一、Flutter框架概述二、Flutter开发环境搭建三、Flutter核心技术解析1. **Widget树与状态管理**2. **路由与导航**3. **网络请求与数据解析**4. **本地存储与数据库**5. **包管理与依赖** 四、实战案例:开发跨平台新闻客户端五、Flutter开发工具与调…...
Flutter 添加 iOS widget 小组件
环境 macOS 15.1 Xcode16.1 Flutter 3.27.4 前言 本篇文章主要记录,在Flutter 项目中如何正确地添加iOS 小组件,iOS 小组件 相关的知识在另一篇文章有记录。 iOS 14 widget 添加小组件 WidgetExtension 打开Xcode New -> Target 选择 iOS -> 搜…...
2025年金三银四经典自动化测试面试题
概述 觉得自动化测试很难? 是的,它确实不简单。但是学会它,工资高啊! 担心面试的时候被问到自动化测试? 嗯,你担心的没错!确实会被经常问到! 现在应聘软件测试工程师的岗位&…...
C++17 中 std::lcm:从入门到精通
文章目录 一、引言二、std::lcm 的基本概念三、入门示例四、计算多个整数的最小公倍数五、std::lcm 的实现原理六、在实际项目中的应用七、注意事项八、总结 一、引言 在 C 编程中,处理数学运算时,计算最小公倍数(Least Common Multiple&…...
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...

