PostgreSQL:生成-唯一主键id
1. 通过时间戳和随机数拼接生成
select TO_CHAR(NOW(), 'YYYYMMDDHH24MISS') || LPAD(FLOOR(RANDOM() * 1000000)::TEXT, 6, '0') AS unique_id
解析:
-
TO_CHAR(NOW(), ‘YYYYMMDDHH24MISS’):该部分将当前时间 (NOW()) 格式化为 YYYYMMDDHH24MISS 格式,即年(YYYY)、月(MM)、日(DD)、小时(24小时制,HH24)、分钟(MI)、秒(SS)。
示例输出:20241008153025(表示 2024 年 10 月 8 日 15:30:25)。
RANDOM() * 1000000: -
RANDOM() :生成 0 到 1 之间的随机浮点数,乘以 1000000 后,可以得到一个 0 到 999999 之间的随机数。
FLOOR(RANDOM() * 1000000): -
FLOOR :将随机数向下取整,保证它是一个整数。
示例输出:573821。
LPAD(FLOOR(RANDOM() * 1000000)::TEXT, 6, ‘0’): -
LPAD(左侧填充)确保随机数总是由 6 位数字组成。如果随机数的位数不足 6 位,则在左侧用 0 补齐。
示例:如果生成的数字是 23789,则通过 LPAD 补齐为 023789。 -
||(字符串拼接):将时间戳部分与随机数部分拼接在一起,形成唯一的标识符。
最终输出:
- 该 SQL 查询会生成一个由当前时间戳和 6 位随机数组合成的唯一 ID。
例如:20241008153025023789
2. 使用PostgreSQL 支持的标准函数-生成 UUID
简介:
- UUID(Universally Unique Identifier)是一个128位的标识符,可以保证生成的ID在全球范围内唯一。PostgreSQL 支持生成 UUID 的标准函数。
使用:
-
uuid_generate_v4()函数
-- 创建拓展 create extension "uuid-ossp"; -- 生成UUID值 SELECT uuid_generate_v4() AS unique_id;说明:
- 这里需要先创建 uuid-ossp 扩展,
执行命令create extension "uuid-ossp"; 才能使用函数uuid_generate_v4()
这一步注意是否拥有权限,需要权限高的账号才能创建。 - 特点:
UUID v4 是基于随机数生成的,通常表示为 36 个字符的字符串(包括连字符),例如:550e8400-e29b-41d4-a716-446655440000。
- 这里需要先创建 uuid-ossp 扩展,
-
gen_random_uuid()函数
-- 创建拓展 create extension "pgcrypto"; -- 生成UUID值 SELECT gen_random_uuid() AS unique_id;说明:
- 这里需要先创建 pgcrypto 扩展,
执行命令create extension "pgcrypto"; 才能使用函数gen_random_uuid()
这一步注意是否拥有权限,需要权限高的账号才能创建。
- 这里需要先创建 pgcrypto 扩展,
说明:
- postgresql 官方文档:如果只是使用随机的uuid, 建议使用 pgcrypto 扩展的 gen_random_uuid() 。
详见:https://www.postgresql.org/docs/current/uuid-ossp.html
3. 数据库序列实现数字递增
简介:
- 数据库序列是生成唯一递增数字的一种方式,适合用于单机或少量并发环境。PostgreSQL 内置了 SERIAL 和 BIGSERIAL 类型,自动生成自增主键。
使用方法:
使用:
-- 创建一个新的序列对象
CREATE SEQUENCE order_seq START 1;
-- 获取递增值
SELECT nextval('order_seq') AS unique_id;
特点:
- 序列号是连续的、递增的整数,例如:1, 2, 3…。
- 优点:
整数类型占用空间小,性能高。
生成顺序ID,便于排序和索引。 - 缺点:
在分布式环境中可能会有冲突。
需要依赖数据库状态。
4. 其他方法待续…
相关文章:
PostgreSQL:生成-唯一主键id
1. 通过时间戳和随机数拼接生成 select TO_CHAR(NOW(), YYYYMMDDHH24MISS) || LPAD(FLOOR(RANDOM() * 1000000)::TEXT, 6, 0) AS unique_id解析: TO_CHAR(NOW(), ‘YYYYMMDDHH24MISS’):该部分将当前时间 (NOW()) 格式化为 YYYYMMDDHH24MISS 格式&#…...
Swift添加自定义字体
1. 在 Xcode 中添加自定义字体 首先,你需要将自定义字体文件(如 .ttf 或 .otf 文件)添加到项目中。 将字体文件拖放到项目的资源管理器中,确保选中了 "Copy items if needed"。打开 Info.plist 文件,添加一…...
Springboot 整合 Java DL4J 实现企业门禁人脸识别系统
🧑 博主简介:历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,…...
SSTI模板注入+CTF实例
参考文章: 一文了解SSTI和所有常见payload 以flask模板为例-腾讯云开发者社区-腾讯云 (tencent.com) python-flask模块注入(SSTI) - ctrl_TT豆 - 博客园 (cnblogs.com) ssti详解与例题以及绕过payload大全_ssti绕过空格-CSDN博客 1. SSTI(模板注入&…...
iPhone 16 Pro 拆解揭秘:设计改进与维修便利性
苹果最新推出的iPhone 16系列在许多方面都进行了更新和改进,而这次我们要聚焦的是其中的高端型号——iPhone 16 Pro。 这款手机不仅在性能上有所提升,在内部构造上也带来了不少变化,让我们一起来看看这些细节吧。 更容易进入的内部结构 对于…...
Java项目实战II养老||基于Java+Spring Boot+MySQL的社区智慧养老监护管理平台设计与实现(源码+数据库+文档)
目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着老龄化…...
利用FnOS搭建虚拟云桌面,并搭建前端开发环境(二)
利用FnOS搭建虚拟云桌面,并搭建前端开发环境 二 一、docker镜像二、环境配置三、核心环境配置流程文档 利用FnOS搭建虚拟云桌面,并搭建前端开发环境(一) 上一章安装了飞牛FnOS系统,界面如下,这一张配置前端…...
【Python】Qwen-VL-7B box
VLLM-Qwen2-VL-7B-Instruct import cv2# 读取图像 image_path haibaoA.png # 替换为图像的路径 image cv2.imread(image_path)# 定义框的坐标 (x1, y1) 是左上角,(x2, y2) 是右下角 x1, y1 200, 550 # 左上角坐标 x2, y2 799, 750 # 右下角坐标 h, w image.…...
echarts按需引入解决项目大小问题
背景: 按需加载缩减项目大小,提升项目性能和可用性 实现: 创建echarts.js main.js进行配置 页面中引用 效果 全量导入 按需加载:...
天气预报echarts
如上图,可以切换温度,降水量,风力风向和空气质量 <template><el-radio-group v-model"selectedData" change"updateChart"><el-radio-button label"temperature">温度</el-radio-butto…...
Kafka-初识
一、Kafka是什么? Kafka是一个高度可扩展、弹性、容错和安全的分布式流处理平台,由服务器和客户端组成,通过高性能TCP网络协议进行通信。它可以像消息队列一样生产和消费数据。可以部署在裸机硬件、虚拟机和容器上,也可以部署在本…...
Redis的主要的特性和优势 ?
Redis 的主要特性 内存存储:Redis 将数据存储在内存中,这使得读写操作非常快速。它还支持将数据持久化到磁盘,以防止数据丢失。 丰富的数据结构:Redis 不仅支持简单的字符串键值对,还支持更复杂的数据结构,…...
yolov5-7.0模型DNN加载函数及参数详解(重要)
yolov5-7.0模型DNN加载函数及参数详解(重要) 引言yolov5(v7.0)1,yolov5.h(加载对应模型里面的相关参数要更改)2,main主程序(1)加载网络(2)检测推理࿰…...
StringEntity 用于将字符串内容作为 HTTP 请求实体(请求体)
StringEntity 类是 Apache HttpClient 库中的一个类,它用于将字符串内容作为 HTTP 请求实体(请求体)。这个类非常适合用于发送 JSON、XML 或其他需要以字符串形式发送的数据。以下是 StringEntity 类的一些常用方法和代码案例: …...
校园系统校园小程序 论坛校园圈系统失物招领、闲置二手、跑腿外卖等校园圈子系统应该具备有哪些功能
针对校园系统、校园小程序、论坛校园圈系统以及失物招领、闲置二手、跑腿外卖等具体功能,一个综合性的校园圈子系统应该具备以下主要功能: 前后端源码查看 一、基础功能 用户注册与登录 提供用户注册和登录功能,支持学生身份验证、手机号验…...
[AWS云]kafka调用和创建
背景:因为因为公司的项目需要使用AWS的kafka,但是在创建和使用过程中都遇到了一些报错和麻烦,毕竟老外的东西,和阿里云、华为使用起来还是不一样。 一、创建(创建的配置过程就略了,就是配置一下可用区、型号࿰…...
查看 Excel 应用程序中已打开的 Excel 文件的完整路径
要查看 Excel 应用程序中已打开的 Excel 文件的完整路径(全路径),你可以通过以下几种方法获取具体路径,尤其是在 VSTO 应用程序中。 方法1:使用 VSTO Excel 外接程序代码 在 VSTO 外接程序代码中,您可以直接…...
学习 RocketMQ 单机部署、消息发送、消息接收
文章目录 RocketMQ 介绍为什么要使用 MQ ?RocketMQ 与其他产品对比vs Kafkavs RabbitMQvs ActiveMQ RocketMQ 重要概念部署 Namesrver、Broker、Dashboard快速入门消息生产者消息消费者 消费模式简单消息1)同步发送2)异步发送3)单…...
【计算机网络】CDN
CDN(Content Delivery Network,内容分发网络)是一种分布式的服务器网络,旨在通过将内容缓存到多个地理位置的服务器上,加速内容的分发和传递。CDN 的主要目的是减少用户访问网站时的延迟,提升用户体验&…...
数据结构:插入排序
1.插入排序 此排序如打扑克牌一样;每次抓牌,把扑克从前向后扒拉;找到合适的位置插入进去—所以叫插入排序; 时间复杂度:O(N^2) int arr[10] { 9,8,7,6,5,4,3,2,1,0 };//数据太多就不好写了 …...
运维提效实战:用 Ansible+Cron 搞定日志自动清理,再也不用半夜爬起来删日志了
前言 作为常年和服务器打交道的运维人,估计没人没经历过半夜被磁盘爆满告警吵醒的崩溃 —— 远程登服务器、挨个找日志文件、手动删旧日志,一套操作下来人彻底清醒,回头还得担心误删关键文件。 其实这类重复又机械的运维活儿,完全…...
字节开源AI神器DeerFlow,4.1万星标刷屏,普通人免费就能用
文章目录这玩意儿不是ChatGPT那种"嘴炮型"选手35k星标怎么来的?字节这次把"龙虾"养明白了多智能体协作:不是一个人在战斗沙箱执行:让AI真的"动手"干活对比OpenAI:免费、本地、可控普通人怎么上手&a…...
springboot基于协同过滤推荐算法的图书借阅推荐系统
目录需求分析与系统设计数据准备与处理协同过滤算法实现推荐系统集成系统测试与优化部署与监控项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作需求分析与系统设计 明确系统的核心功能需求,包括用户管理、图书管理、…...
清华学位论文高效排版:thuthesis模板全场景应用指南
清华学位论文高效排版:thuthesis模板全场景应用指南 【免费下载链接】thuthesis LaTeX Thesis Template for Tsinghua University 项目地址: https://gitcode.com/gh_mirrors/th/thuthesis 在学术写作中,格式规范与内容质量同等重要。thuthesis作…...
利用快马平台快速构建mcporter数据转换工具原型,十分钟验证数据管道设计
最近在做一个数据迁移项目时,遇到了需要频繁转换数据格式的需求。传统方式下,光是搭建开发环境、编写基础代码就要花上大半天时间。这次尝试用InsCode(快马)平台快速构建了一个mcporter数据转换工具原型,整个过程出乎意料地顺畅。 明确核心需…...
【实战解析】从期末试题到工程实践:摄影测量核心概念与计算全攻略
1. 从试卷到工地:摄影测量核心概念实战指南 第一次接触航测项目时,我盯着任务书上的"相机选型""航线规划"等要求完全懵了。这和期末考试那些名词解释、计算题有什么关系?直到在工地摔打半年后才明白,那些看似…...
【经验贴】运营岗考过CDA数据分析师一级经验分享
终于把CDA一级拿下了!查成绩那一刻真的挺开心的,不是多难,但全程自己一点点学出来,特别有成就感。今天就把我整个备考过程老老实实写出来,给正在准备的小伙伴一个参考。一、备考原因我最开始考CDA,完全是因…...
BLE5.1 与蓝牙Mesh 在手环数字车钥匙中的角色与体验升级
可穿戴数字车钥匙把传统实体钥匙的能力收敛到手环、手表等贴身设备上,通过近距无线链路与车载控制器或专用通信单元交互,支持解闭锁、启动、迎宾等操作。典型实现会组合 低功耗蓝牙(BLE) 做常在线链路与距离感知,并以 …...
CLIP-GmP-ViT-L-14入门指南:ViT-L-14主干网络结构与特征提取流程
CLIP-GmP-ViT-L-14入门指南:ViT-L-14主干网络结构与特征提取流程 1. 项目概述 CLIP-GmP-ViT-L-14是一个经过几何参数化(GmP)微调的CLIP模型,在ImageNet和ObjectNet数据集上能达到约90%的准确率。这个模型基于ViT-L-14(Vision Transformer Large 14)主干…...
深度学习道路提取代码更换数据集后 PyCharm 闪退问题全面解决指南
深度学习道路提取代码更换数据集后 PyCharm 闪退问题全面解决指南 摘要 在基于深度学习的道路提取任务中,更换数据集后常出现 PyCharm 闪退现象。这类问题涉及环境配置、数据加载、内存管理、模型适配等多个层面,往往难以快速定位。本文从 Ubuntu 操作系统、PyCharm IDE、C…...
