如何在postgresql生成的序列之前为字符串添加前缀?

Sha*_*shi 6 database postgresql sequence

这是一个序列

CREATE SEQUENCE technician_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
Run Code Online (Sandbox Code Playgroud)

它产生了

1
2
3
4

我需要序列为

AAA1
AAA2
AAA3
AAA4

可能吗?我非常喜欢postgresql.

bma*_*bma 10

以下是几种方式:

-- Referencing the sequence directly:
CREATE SEQUENCE test_seq;

SELECT 'AAAA'||nextval('test_seq')::TEXT;
 ?column? 
----------
 AAAA1

SELECT 'AAAA'||nextval('test_seq')::TEXT;
 ?column? 
----------
 AAAA2


-- Using a DEFAULT
CREATE TABLE abc 
    (val TEXT NOT NULL DEFAULT 'AAAA'||nextval('test_seq'::regclass)::TEXT, 
    foo TEXT);

INSERT INTO abc (foo) VALUES ('qewr');

SELECT * FROM abc;
  val  | foo  
-------+------
 AAAA3 | qewr
Run Code Online (Sandbox Code Playgroud)

这些假设您已经根据原始问题的评论仔细决定了如何继续进行,如其他人所要求的那样.