postgresql生成uuid

原创 2020-03-12 15:41 阅读(7484)次

我们postgresql数据库在插入数据时,需要生成uuid当作主键,这里分享下2种做法:

1,参考这位朋友提供的

https://www.cnblogs.com/chengyungzheng/p/10175515.html

2,也可以直接自己拼接一下,但这不建议在高并发下使用,以下三个语句都可以生成

SELECT uuid_in(md5(random()::text || now()::text)::cstring);

SELECT uuid_in(md5(random()::text || clock_timestamp()::text)::cstring);

SELECT md5(random()::text || clock_timestamp()::text)::uuid;


上面的::uuid都是在格式化字符串成uuid,只是加了横线-,如果要生成32位的,只需要把uuid_in或::uuid去掉就可以了,语句如下:

SELECT REPLACE( md5(random()::text || clock_timestamp()::text),'-','');