Автоинкремент в 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;
→ Ссылка