我想知道是否有任何方法可以在Rails的UUID上创建自定义前缀。我想生成类似的东西:
"ret_a44691c8-93e2-11e8-ac1c-1b3aa40a1cae"
我找到了以下代码,可以将其添加到迁移中以创建UUID:
t.uuid "uuid", default: "uuid_generate_v4()"
但这会生成类似以下内容的
:"a44691c8-93e2-11e8-ac1c-1b3aa40a1cae"
是否可以获得我想要的格式?
答案 0 :(得分:3)
如评论中所述,postgres将UUID定义为(https://www.postgresql.org/docs/9.1/static/datatype-uuid.html)
A sequence of lower-case hexadecimal digits, in several groups separated by
hyphens, specifically a group of 8 digits followed by three groups of 4 digits
followed by a group of 12 digits, for a total of 32 digits representing the 128 bits
因此,您不能在UUID列中添加ret_
前缀。另外,如果您想识别零售商和客户,则不应该为其创建另一列。
SqlFiddle(使用串联的UUID时)。它将引发错误。
答案 1 :(得分:0)
如果要为UUID加上前缀,则可以在postgres中执行以下操作:
CREATE TABLE IF NOT EXISTS my_table (
uuid TEXT NOT NULL DEFAULT concat('ret-', uuid_generate_v4())
);
这将生成如下的uuid:
'ret-a44691c8-93e2-11e8-ac1c-1b3aa40a1cae'