2013-07-29 112 views
3

这是一个序列如何在由postgresql生成的序列之前为字符串添加前缀?

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

它生成

我所需要的序列

AAA1
AAA2
AAA3
AAA4

它可能吗? è?我对postgresql非常陌生。

+2

它会一直是'AAA'吗?如果是这样,在表示层。 –

+0

类似的问题在这里:为什么你需要一个前缀? – jsalonen

+0

@ClodoaldoNeto它将会改变。我可以在表示层做到这一点。只是问,是否可以用postgresql。它会节省一些努力 – Shashi

回答

5

这里有几个方面:

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

这些假定您已经仔细决定如何处理的基础上,评论你原来的问题,如要求由他人。

相关问题