Możesz to zrobić (działa w wersji 12c lub nowszej):
alter table your_table add id number generated always as identity;
Chociaż generuje to również nowe wartości dla kolumny, dla przyszłych wstawień.
Również o total row number
, powinno to prawie zawsze generować wartości od 1 do "całkowitej liczby wierszy", ale w każdym razie (nie wiem dokładnie, kiedy to może działać nieprawidłowo), sprawdź to po alter
możesz zrobić:select count(*), max(id) from your_table
. wartości powinny się zgadzać.