# UUID类型
UUID数据类型用于存储符合RFC 4122、ISO/IEC 9834-8:2005以及相关标准定义的通用唯一标识符（UUID）。该标识符是一个由算法产生的128位标识符（大小为16字节），确保不会在已知的模块中产生相同的标识符。
因此，对分布式系统而言，这种标识符比序列能更好的保证唯一性，因为序列只能在单一数据库中保证是唯一。
标准格式的UUID由32个小写十六进制数字组成，大小为128位，通过连字符分为几组，一组8个数字+三组4个数字+一组12个数字，典型示例如下：
```
a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11
```
GaussDB同样支持以其他方式输入：大写字母和数字、由花括号包围的标准格式、省略部分或所有连字符、在任意一组四个数字之后加一个连字符。示例：
```
A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11
{a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11}
a0eebc999c0b4ef8bb6d6bb9bd380a11
a0ee-bc99-9c0b-4ef8-bb6d-6bb9-bd38-0a11
```
默认是以标准格式输出。
#### 示例
```
-- 生成一个UUID类型的序列号
gaussdb=# SELECT uuid();
                 uuid                 
--------------------------------------
 846b9d00-172d-c63d-4a03-e8b4700370e0
(1 row)
-- 创建表
gaussdb=# CREATE TABLE uuid_test(id int, test uuid) DISTRIBUTE BY HASH(test);
-- 插入数据，使用系统生成的uuid插入数据
gaussdb=# INSERT INTO uuid_test VALUES(1, uuid()::uuid);
-- 插入数据，使用示例格式插入数据
gaussdb=# INSERT INTO uuid_test VALUES(2, 'A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11');
gaussdb=# INSERT INTO uuid_test VALUES(3, '{a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11}');
gaussdb=# INSERT INTO uuid_test VALUES(4, 'a0eebc999c0b4ef8bb6d6bb9bd380a11');
gaussdb=# INSERT INTO uuid_test VALUES(5, 'a0ee-bc99-9c0b-4ef8-bb6d-6bb9-bd38-0a11');
-- 查看数据，输出时以标准格式输出
gaussdb=# SELECT * FROM uuid_test;
 id |                 test                 
----+--------------------------------------
  1 | 1b52051c-1731-c63d-4a03-e8b4700370e0
  2 | a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11
  3 | a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11
  4 | a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11
  5 | a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11
(5 rows)
-- 删除表
gaussdb=# DROP TABLE uuid_test;
```
