如何创建一个基于Postgresql中的序列自动填充的列?

时间:2017-04-25 18:35:43

标签: sql postgresql

有没有办法创建半串的列? 想象一下,我有下表:

create table item (
     item_number   varchar(10)    PRIMARYKEY,

)

但我希望列item_number是这样的:ITEM001,ITEM002,ITEM003 .... 所以我想要ITEM这个词然后是一个序列。

2 个答案:

答案 0 :(得分:2)

使用具有默认值的序列:

create sequence item_number_seq;

create table item 
(
  item_number varchar(10) primary key default 'ITEM'||to_char(nextval('item_number_seq'), '00000')
);

但为所有行存储相同常量值几乎没用。只需使用常规序列,并在显示这些值时添加该常量。或者使用视图来做到这一点。

答案 1 :(得分:1)

在查询时或表示层执行此操作:

create table item (item_number serial primary key);

select 'ITEM' || to_char(item, '999')
from item