温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何生成数据库UUID

发布时间:2026-07-01 16:53:59 来源:亿速云 阅读:84 作者:小樊 栏目:数据库

在数据库中生成 UUID(Universally Unique Identifier),具体方式取决于你使用的 数据库类型。下面按常见数据库给你总结,并附上示例和注意事项。


一、什么是 UUID

UUID 通常是 128 位 的唯一标识符,常见格式如:

550e8400-e29b-41d4-a716-446655440000

UUID 的优点:

  • 全局唯一
  • 适合分布式系统
  • 不依赖自增 ID

二、常见数据库中生成 UUID

MySQL / MariaDB

1️⃣ 使用 UUID() 函数

SELECT UUID();

结果示例:

a1b2c3d4-5678-90ef-1234-56789abcdef0

2️⃣ 作为默认值(MySQL 8.0+)

CREATE TABLE users (
    id CHAR(36) NOT NULL DEFAULT (UUID()),
    name VARCHAR(50),
    PRIMARY KEY (id)
);

⚠️ MySQL 5.7 及以下不支持函数作为默认值,需要手动插入。

3️⃣ 插入时生成

INSERT INTO users (id, name)
VALUES (UUID(), 'Alice');

✅ PostgreSQL

1️⃣ 使用 uuid-ossp 扩展(推荐)

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

SELECT uuid_generate_v4();

2️⃣ 建表时自动生成

CREATE TABLE users (
    id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
    name VARCHAR(50)
);

✅ PostgreSQL 13+(内置函数)

CREATE TABLE users (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    name VARCHAR(50)
);

✅ Oracle

1️⃣ 使用 SYS_GUID()

SELECT SYS_GUID() FROM dual;

格式:32 位不带 -

A1B2C3D4567890EF123456789ABCDEF0

2️⃣ 作为默认值

CREATE TABLE users (
    id RAW(16) DEFAULT SYS_GUID(),
    name VARCHAR2(50)
);

✅ SQL Server

1️⃣ 使用 NEWID()

SELECT NEWID();

2️⃣ 作为默认值

CREATE TABLE users (
    id UNIQUEIDENTIFIER DEFAULT NEWID(),
    name NVARCHAR(50)
);

三、UUID 存储建议

数据库 推荐类型
MySQL CHAR(36)BINARY(16)
PostgreSQL UUID
Oracle RAW(16)
SQL Server UNIQUEIDENTIFIER

性能建议

  • 使用 BINARY(16) / RAW(16) 存储比字符串更高效
  • 可用函数将 UUID 转为二进制存储

四、应用层生成 UUID(更常见)

Java

UUID uuid = UUID.randomUUID();

Python

import uuid
uuid.uuid4()

JavaScript

crypto.randomUUID();

推荐做法
在应用层生成 UUID,再写入数据库,避免数据库函数差异。


五、UUID vs 自增 ID

对比项 UUID 自增 ID
唯一性 全局唯一 仅单表唯一
分布式 ✅ 非常适合 ❌ 不适合
可读性 ❌ 差 ✅ 好
性能 ⚠️ 索引略慢 ✅ 快

六、总结一句话

数据库生成 UUID 用内置函数,分布式系统更推荐在应用层生成 UUID。

如果你告诉我:

  • 使用的数据库(MySQL / PostgreSQL / Oracle / SQL Server)
  • 是否是分布式系统
  • 是否关心性能

我可以给你一个最优设计方案

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI