如何在PostgreSQL生成的序列之前添加字符串前缀? [英] how to prefix a string before sequence generated by postgresql?

查看:527
本文介绍了如何在PostgreSQL生成的序列之前添加字符串前缀?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是一个序列

CREATE SEQUENCE technician_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;

它会生成

1
2
3
4

1
2
3
4

我需要以下序列

AAA1
AAA2
AAA3
AAA4

AAA1
AAA2
AAA3
AAA4

有可能吗?我对Postgresql非常陌生。

Is it possible? I am very much new to postgresql.

推荐答案

有以下几种方法:

-- 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

这些假设您已经根据对原始问题的评论谨慎地决定了如何进行操作,按照其他人的要求。

These assume that you have carefully decided how to proceed, based on the comments to your original question, as asked by the others.

这篇关于如何在PostgreSQL生成的序列之前添加字符串前缀?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆