Это не стоит того, в большинстве случаев. Гарантировать последовательный номер довольно сложно - и тем более, если вы принимаете во внимание обновления и удаления.
Альтернативный подход заключается в том, чтобы в качестве первичного ключа таблицы использовался столбец идентификаторов. Затем, если вы хотите порядковый номер, вы можете использовать:
select a, b, row_number() over (partition by a, b, order by table_id) as c
Если вы действительно хотите создать такое число, вам потребуется триггер insert
, который выполняет вычисления - и блокирует всю таблицу в случае, если другая операция вставляет те же значения a
/ b
. Вам также нужны триггеры для update
с и delete
с.