2013-07-29 79 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 

這些假定您已經仔細決定如何處理的基礎上,評論你原來的問題,如要求由他人。

相關問題