在Postrges中,我知道如何创建一个带有序列号(编号)的列的表:
CREATE TABLE Tag (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL
);
不过,我更希望ID具有人类可读的外观。我通常会做类似tag_1, tag_2, tag_3
usr_1, usr_2, usr_3
的事情。
我已经看到了有关如何生成uuid(Generating a UUID in Postgres for Insert statement?)的说明,但我并不是真的需要它。基本序列号绰绰有余,我只想在开头加上tag_
。
我如何创建一个带有通用前缀字符串的序列号?
例如,您可以使用序列来完成此操作>
CREATE SEQUENCE tag_seq START WITH 1;
CREATE TABLE tag
(id TEXT NOT NULL DEFAULT 'tag_'||nextval('tag_seq'::regclass)::TEXT,
name TEXT);
INSERT INTO tag (name) VALUES ('foo'),('bar');
SELECT * FROM tag;