是的,MySQL 可以生成 UUID (Universally Unique Identifier)。以下是几种在 MySQL 中生成 UUID 的方法:
MySQL 提供了内置的 UUID()
函数来生成标准 UUID (版本1):
SELECT UUID();
-- 示例输出: '6ccd780c-baba-1026-9564-0040f4311e29'
如果需要更短的唯一标识符,可以使用 UUID_SHORT()
:
SELECT UUID_SHORT();
-- 示例输出: 92395783830258742
可以在表定义中使用 UUID 作为主键:
CREATE TABLE users (
id CHAR(36) NOT NULL PRIMARY KEY DEFAULT UUID(),
username VARCHAR(50) NOT NULL
);
如果需要特定版本的 UUID,可以在应用层生成后插入,或者使用 MySQL 8.0+ 的 UUID_TO_BIN()
和 BIN_TO_UUID()
函数进行转换。
UUID_TO_BIN()
和 BIN_TO_UUID()
函数来优化 UUID 存储如果需要使用 UUID 作为主键,考虑:
-- 在 MySQL 8.0+ 中,可以这样优化存储
CREATE TABLE optimized_users (
id BINARY(16) PRIMARY KEY DEFAULT (UUID_TO_BIN(UUID())),
username VARCHAR(50)
);
这样可以减少存储空间并提高查询性能。