Автоинкремент в PostgreSQL
Есть таблица orders с полями order_id (bigint), value (text).
Как у столбца id можно сделать автоинкремент следующего вида: 0000001, 0000002 .... 0000010 .... 0001234 ... и тд?
Пробовал так, но пропадают все нули:
order_id bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 0000001 INCREMENT BY 1)
Ответы (1 шт):
Автор решения: Мелкий
→ Ссылка
По правилам математики числа 00001 и 1 - это одно и то же самое число 1. Собственно, bigint это всегда фиксированные 8 байт данных.
Если вам нужны лидирующие нули для какой-либо цели - вы должны преобразовывать число в текст и добавлять нули до нужной длинны строки сами.
В частности, например на SQL:
select lpad(cast(order_id as text), 5, '0') from orders;