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

如何在Postgresql中创建基于序列自动填充的列?,sql,postgresql,Sql,Postgresql,有没有办法创建一个半连续的列? 假设我有下表: create table item ( item_number varchar(10) PRIMARYKEY, ) 但我希望列item_编号如下:ITEM001、ITEM002、ITEM003。。。。 所以我想要ITEM这个词,然后是一种序列 在查询时或在表示层执行此操作: create table item (item_number serial primary key); select 'ITEM' || to_cha

有没有办法创建一个半连续的列? 假设我有下表:

create table item (
     item_number   varchar(10)    PRIMARYKEY,

)
但我希望列item_编号如下:ITEM001、ITEM002、ITEM003。。。。
所以我想要ITEM这个词,然后是一种序列

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

create table item (item_number serial primary key);

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

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

create table item (item_number serial primary key);

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

使用具有默认值的序列:

create sequence item_number_seq;

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

但是为所有行存储相同的常量值几乎是无用的。只需使用常规序列,并在显示这些值时添加该常量。或者使用视图来执行此操作

使用具有默认值的序列:

create sequence item_number_seq;

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

但是为所有行存储相同的常量值几乎是无用的。只需使用常规序列,并在显示这些值时添加该常量。或者使用视图来执行此操作

创建插入触发器并使用序列。创建插入触发器并使用序列。