如何在postgresql中生成自定义代码

How to generate custom code in postgresql

我想在 postgresql 中为 table 创建一个代码。 该模型可能看起来像: 事件{id,代码,名称,created_by} 该代码将从 E0001 开始,到 E9999 结束。这个想法是在插入时检查,如果没有代码生成它,否则插入提供的代码。 我假设我必须使用触发器,但我不知道如何使用该序列生成该代码并检查是否存在。 帮助。

您可以使用 lpad 函数用零填充数字。

select 'E' || lpad (45::text, 5, '0')

您可以在使用序列的列定义中使用 DEFAULT 子句:

CREATE SEQUENCE seq;

ALTER TABLE mytab ALTER code SET DEFAULT 'E' || CAST(nextval('seq') TO text);

我终于通过这样做解决了:

创建序列

CREATE SEQUENCE seq;

并使用

设置代码的默认值
('E'::text || lpad((nextval('seq'::regclass))::text, 4, '0'::text))

谢谢你们,因为我用了两个答案。