如何在PostgreSQL中创建自定义序列?

3

我想知道如何在PostgreSQL中实现类似于我在下表的"code"列中在SQL Server中所做的操作。

CREATE TABLE test(
    id INT IDENTITY(1,1) NOT NULL,
    code AS ('P' + RIGHT('0000' + CONVERT(VARCHAR, id), (4)))
);
1个回答

4

Postgres使用符合SQL标准的自增列。所以identity(1,1)不能使用。

可以通过类似的方式创建生成的列。使用lpad()函数可以在数字前面添加一定数量的零。

CREATE TABLE test
(
  id INT generated always as identity not null,
  code text generated always AS ('P'||lpad(id::text, 4, '0')) stored
);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接