类别:

/sql-reference/functions-string`(通用)、:doc:/sql-reference/functions-data-generation`

UUID_STRING

以格式化字符串形式生成版本 4(随机)或版本 5(命名)RFC 4122 兼容的通用唯一标识符 (UUID)。

语法

UUID_STRING()

UUID_STRING( '<uuid>' , '<name>' )
Copy

实参

'uuid'

一个有效的 UUID 字符串。此值是用于生成返回的 UUID 的命名空间。

'name'

用于生成返回的 UUID 的名称。

返回

此函数返回 128 位值,格式为字符串(VARCHAR 数据类型)。

使用说明

UUID_STRING 支持生成两个版本的 UUIDs,均遵守 RFC 4122:

  • 未向函数提供任何实参时,返回版本 4(随机)UUID。对于随机数生成,使用称为 MT19937-64 的 64 位 梅森旋转算法 (link removed)。

  • 通过提供 uuid 字符串(称为命名空间)作为第一个实参并提供 name 字符串作为第二个实参,可以生成版本 5(命名)UUID。

示例

生成随机 UUID:

SELECT UUID_STRING();
Copy
+--------------------------------------+
| UUID_STRING()                        |
|--------------------------------------|
| d47f4e30-306f-4940-8921-c154094df1a1 |
+--------------------------------------+

生成命名的 UUID:

SELECT UUID_STRING('fe971b24-9572-4005-b22f-351e9c09274d','foo');
Copy
+-----------------------------------------------------------+
| UUID_STRING('FE971B24-9572-4005-B22F-351E9C09274D','FOO') |
|-----------------------------------------------------------|
| dc0b6f65-fca6-5b4b-9d37-ccc3fde1f3e2                      |
+-----------------------------------------------------------+

创建表并插入随机 UUIDs:

CREATE OR REPLACE TABLE uuid_insert_test(random_uuid VARCHAR(36), test VARCHAR(10));

INSERT INTO uuid_insert_test (random_uuid, test) SELECT UUID_STRING(), 'test1';
INSERT INTO uuid_insert_test (random_uuid, test) SELECT UUID_STRING(), 'test2';
INSERT INTO uuid_insert_test (random_uuid, test) SELECT UUID_STRING(), 'test3';
INSERT INTO uuid_insert_test (random_uuid, test) SELECT UUID_STRING(), 'test4';
INSERT INTO uuid_insert_test (random_uuid, test) SELECT UUID_STRING(), 'test5';

SELECT * FROM uuid_insert_test;
Copy
+--------------------------------------+-------+
| RANDOM_UUID                          | TEST  |
|--------------------------------------+-------|
| 7745a0cf-d136-406b-9289-38072d242871 | test1 |
| 8c31e031-a6bf-479d-9abb-b7909f298ba1 | test2 |
| e65d5641-01c0-4126-b80d-c5ae6d4848be | test3 |
| bd02bf4e-fa5d-498d-8a9a-d38200f1ca30 | test4 |
| 4df2a34e-ad65-46b4-a51a-3eb9394aeb83 | test5 |
+--------------------------------------+-------+
语言: 中文