是否可以使用递增标识符创建DEFAULT子句?

时间:2013-04-26 11:04:45

标签: postgresql

我想知道是否有可能在PostgreSQL中实现以下内容:

我有一个名为Dossier的表(英文中的“文件夹”),其表结构如下:name, taille,...

现在,我希望在桌面上拥有的条件是每次创建Dossier的新实例时,name列中的值会自动补充一个 - 增加标识符,如:ref00001ref00002等。(为了澄清,在第二次插入后,name列的值应自动为ref00002 ...)

1 个答案:

答案 0 :(得分:2)

CREATE SEQUENCE seq_ref;

CREATE TABLE dossier
        (
        ref TEXT NOT NULL PRIMARY KEY DEFAULT 'ref' || NEXTVAL('seq_ref'),
        value TEXT
        );

如果您想要零填充数字,请使用:

CREATE SEQUENCE seq_ref;

CREATE TABLE dossier
        (
        ref TEXT NOT NULL PRIMARY KEY DEFAULT 'ref' || LPAD(NEXTVAL('seq_ref')::TEXT, 10, '0'),
        value TEXT
        );