¿Hay alguna forma de crear una columna que sea mitad serial? es decir imagina que tengo la siguiente tabla:
create table item ( item_number varchar(10) PRIMARYKEY, )pero quiero que la columna número_artículo sea así: ARTÍCULO001, ARTÍCULO002, ARTÍCULO003 .... entonces quiero la palabra ARTÍCULO y luego una especie de secuencia después.
use una secuencia con un valor predeterminado:
create sequence item_number_seq; create table item ( item_number varchar(10) primary key default 'ITEM'||to_char(nextval('item_number_seq'), '00000') );Pero almacenar el mismo valor constante para todas las filas es bastante inútil. Simplemente use una secuencia regular y agregue esa constante cuando muestre esos valores. O use una vista para hacer eso.
Hazlo en el momento de la consulta o en la capa de presentación:
create table item (item_number serial primary key); select 'ITEM' || to_char(item, '999') from item