Создание поля счетчика формата xxxx в PostgreSQL
Нужно для поля code задать автоматический счетчик который будет начинаться с 0001 и при последующих записях в таблицу код будет увеличиваться на 1, то есть 0002, 0003, и тд Вот код, пытался сделать по документации, но не разобрался
SQL.execute("""CREATE TABLE if not exists ticketmes(
code char(5) PRIMARY KEY,
message_id BIGINT,
channel_id BIGINT)""")
Ответы (1 шт):
Автор решения: Alexander Pavlov
→ Ссылка
В том виде, что ты хочешь, Пострис не даст сделать. Все автоматические счётчики и последовательности у него числовые.
Сделай обычный числовой автоинкремент и форматируй на лету
select lpad(code::text, 5, '0') as code from ticketmes
Если Постгрис 12 и выше, то можно сделать автовычислямую колонку
CREATE TABLE ticketmes (
id serial,
code char(5) GENERATED ALWAYS AS ( lpad(id::text,5,'0') ) STORED ,
message_id BIGINT,
channel_id BIGINT
);
insert into ticketmes default values;
insert into ticketmes default values;
select * from ticketmes;
-- 1 00001 null null
-- 2 00002 null null