首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在postgres中将ksuid的默认值赋给列?postgres中有没有ksuid的替代品?

如何在postgres中将ksuid的默认值赋给列?postgres中有没有ksuid的替代品?
EN

Stack Overflow用户
提问于 2020-07-29 19:42:39
回答 1查看 395关注 0票数 1

我有一个char字段,它的默认值应该是ksuid。如何在postgres中生成ksuid?

EN

回答 1

Stack Overflow用户

发布于 2020-07-30 00:01:01

我建议您最好的选择是创建一个用户域。然后定义一个函数来生成ksuid。然后将域更改为,以使用此函数作为默认函数。在需要时,将您的列定义为该域类型。

代码语言:javascript
运行
复制
-- setup domain and the generating function
create domain ksuid character varying(27);
    
create or replace function generate_ksuid()
 returns  ksuid
 language sql 
as $$
    select substring(
             replace(to_char(clock_timestamp(),'yyyymmddhh24missus') 
                     || (to_char(random()*1e9,'000000000')
                    ),' ',''),1,27)::ksuid;
$$; 
 
alter domain ksuid set default generate_ksuid();

请参阅完整示例,包括使用here。当然,函数generate_ksuid需要根据您的需求进行调整。这个例子只是基于clock_timestamp和一个随机数。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63152831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档