9

これはシーケンスです

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

それは生成します

1
2
3
4

次のシーケンスが必要です

AAA1
AAA2
AAA3
AAA4

出来ますか?私はpostgresqlに非常に慣れていません。

4

1 に答える 1

13

以下にいくつかの方法を示します。

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

これらは、他の人から尋ねられたように、元の質問へのコメントに基づいて、続行する方法を慎重に決定したことを前提としています。

于 2013-07-29T13:39:02.420 に答える