gpt4 book ai didi

sql - 如何自动增加postgres中的列?就像那个递增数字之后的一些固定文本

转载 作者:行者123 更新时间:2023-12-05 05:59:19 25 4
gpt4 key购买 nike

我是 postgres 的新手,正在尝试创建一个模式。我有一个要求,我需要自动增加我的表的 Id 列。但我不希望它只是一个数字,而是一些固定值,然后是递增的数字。示例 -

DAG100H001
DAG100H002
DAG100H003
DAG100H004

是这样的。我正在查看文档并找到了序列号,但我不确定如何使用它来实现。任何帮助将不胜感激。谢谢。

最佳答案

使用序列和前缀:

CREATE SEQUENCE seq INCREMENT BY 1;

使用方法:

SELECT 
'DAG100H'||lpad(nextval('seq')::text,3,'0'),
'DAG100H'||lpad(nextval('seq')::text,3,'0');

?column? | ?column?
------------+------------
DAG100H001 | DAG100H002
(1 row)

您可能想将它直接添加到您的表中:

CREATE TABLE t (
id text DEFAULT 'DAG100H'||lpad(nextval('seq')::text,3,'0'),
txt text);

这样你就可以插入值..

INSERT INTO t (txt) VALUES ('foo'),('bar');

.. 他们得到你想要的 id

SELECT * FROM t;

id | txt
------------+-----
DAG100H001 | foo
DAG100H002 | bar
(2 rows)
  • 注意您问题的评论部分,因为它们提出了一个很好的观点!考虑使用普通的数字序列,并通过将前缀与列连接来将前缀添加到客户端: 'DAG100H'||lpad(nextval('seq')::text,3,'0'), ..

关于sql - 如何自动增加postgres中的列?就像那个递增数字之后的一些固定文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68220904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com