1. 启用 UUID 扩展
首先需要启用 uuid-ossp 扩展:
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
2. 生成 UUID 的函数
uuid_generate_v1() - 基于时间和 MAC 地址
SELECT uuid_generate_v1();
使用 uuid_generate_v4() - 完全随机生成
SELECT uuid_generate_v4();
使用 uuid_generate_v3() 和 uuid_generate_v5() - 基于命名空间和名称的哈希
SELECT uuid_generate_v3(uuid_ns_url(), 'https://example.com');
SELECT uuid_generate_v5(uuid_ns_url(), 'https://example.com');
3. 创建带有 UUID 列的表
CREATE TABLE example_table (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
name VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
4. 插入数据
自动生成 UUID
INSERT INTO example_table (name) VALUES ('Test Name');
手动指定 UUID
INSERT INTO example_table (id, name)
VALUES ('a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', 'Manual UUID');
5. 查询和比较 UUID
-- 查询特定 UUID
SELECT * FROM example_table WHERE id = 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11';
-- 比较 UUID
SELECT * FROM example_table WHERE id > 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11';
注意事项
确保 uuid-ossp 扩展已安装
UUID 占用 16 字节存储空间
随机 UUID (v4) 有极小的碰撞概率
作为主键时,索引效率可能不如自增整数,但适合分布式系统;
uuid类型是大小写敏感的,通常使用小写字母;
uuid类型的数据长度固定为36个字符(包括连字符);
重庆思庄PG数据库技术分享-PG模式 中 UUID 的使用
张小明
前端开发工程师
云服务器适合搭建哪些网站?从个人博客到企业级应用的全面解析
在数字化浪潮席卷全球的2025年,许多开发者和企业主面临着一个关键抉择:究竟哪些类型的网站最适合部署在云服务器上?我曾亲眼见过一位创业者因为选错了服务器类型,导致网站在流量激增时彻底崩溃,损失了宝贵的客户和声誉…
uniapp vue3的ts页面初始化模板代码
uniapp vue3的ts页面初始化模板代码 在 UniApp 中使用 Vue 3 和 TypeScript 可以大大提升开发效率和代码质量。下面是一个完整的页面初始化模板,以及一些关键的最佳实践,帮助你快速上手。 下面是一个基础的页面模板示例,您可以直接复制使用&a…
图解说明ESP32开发板供电电路在环境搭建中的作用
稳定供电,才是ESP32开发的第一步:从“能亮灯”到“不重启”的硬核实战解析你有没有遇到过这样的情况?Flash烧录到98%突然失败,串口打印一堆乱码;Wi-Fi一连上就自动断开,反复重连像在抽风;ADC读出…
高效配置VSCode:AI开发全攻略详细步骤
一、VSCode 基础配置 下载安装 VSCode前往VSCode 官方网站,根据自己的操作系统(Windows/macOS/Linux)下载对应安装包,完成安装。基础设置调整 打开 VSCode 后,按下Ctrl,(Windows/Linux)或者Cmd…
UUID vs 自增ID做主键,哪个好?
UUID vs 自增ID 一、核心差异概览维度自增IDUUID存储空间4-8字节(int/bigint)16字节(128位)生成方式数据库自动递增应用层生成(随机/有序)顺序性严格递增,天然有序通常无序(有序UUID…
SQL INSERT INTO SELECT 语句
SQL INSERT INTO SELECT 语句通过 SQL,您可以从一个表复制信息到另一个表。INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。SQL INSERT INTO SELECT 语句INSERT INTO SELECT 语句从一个表复制数据,然后把数据插…