【发布时间】:2016-11-21 16:17:22
【问题描述】:
我正在创建一个具有以下表定义的表
CREATE TABLE auth(
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
role VARCHAR(64)
);
生成的 uuid 格式为 a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11 我知道 postgres 也接受不带连字符的 uuid。我们如何指定自动生成的 uuid 中没有连字符?
【问题讨论】:
-
UUID 数据类型不包含破折号。只有当您显示数据时才会显示破折号。类似于没有格式的 DATE。
-
哇!我可以使用不带连字符的 uuid 进行查询!
-
Postgres 支持不同的 '
formatuuid 版本。除此之外,各种格式的使用评估相同(即 '`a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11':: uuid = 'a0eebc999c0b4ef8bb6d-6bb9bd380a11::uuid' 评估为 TRUE。但在生成时它总是在 带有破折号的标准格式。请参阅Documentation。要消除破折号,将 uuid 列转换为文本,然后使用替换删除:replace(::text, '-','')跨度>
标签: postgresql