如何在Postgres中创建一个具有通用前缀(即tag_1,tag_2,tag_3)作为字符串的序列号

问题描述 投票:0回答:1

在Postrges中,我知道如何创建一个带有序列号(编号)的列的表:

CREATE TABLE Tag (
  id SERIAL PRIMARY KEY,
  name TEXT NOT NULL
);

不过,我更希望ID具有人类可读的外观。我通常会做类似tag_1, tag_2, tag_3 usr_1, usr_2, usr_3的事情。

我已经看到了有关如何生成uuid(Generating a UUID in Postgres for Insert statement?)的说明,但我并不是真的需要它。基本序列号绰绰有余,我只想在开头加上tag_

我如何创建一个带有通用前缀字符串的序列号?

postgresql id serial-key
1个回答
0
投票

例如,您可以使用序列来完成此操作>

CREATE SEQUENCE tag_seq START WITH 1;

CREATE TABLE tag 
    (id TEXT NOT NULL DEFAULT 'tag_'||nextval('tag_seq'::regclass)::TEXT, 
    name TEXT);

INSERT INTO tag (name) VALUES ('foo'),('bar');

SELECT * FROM tag;
    
© www.soinside.com 2019 - 2024. All rights reserved.