MySQL 8 中,可以使用函數uuid()
生成 UUID (通用唯一識別碼)。這在一些應用場景下非常有用,例如在分布式系統中,可以保證每個節點生成的 ID 都是唯一的。
使用方法非常簡單,直接在 SQL 語句中調用uuid()
函數即可。例如:
INSERT INTO users (id, name) VALUES (uuid(), 'Bob');
使用這種方式生成的 UUID 是全球唯一的,其格式為 32 個十六進制數字組成的字符串,例如:
68753a44-4d6f-1226-9c60-0050c2490048
其中,前 8 個字符是時間戳的高位部分,接下來的 4 個字符表示 UUID 版本號,再接下來的 4 個字符表示 UUID 變體號,剩下的 12 個字符是隨機生成的。
除了uuid()
函數之外,還可以使用uuid_short()
函數生成短 UUID。它生成的 UUID 是 8 個十六進制數字組成的字符串,例如:
573a446f12269c60
使用這種方式生成的 UUID 可以減少存儲空間和索引長度,但是同樣能夠保證全局唯一。