Vous pouvez le faire (fonctionne pour les versions 12c ou ultérieures) :
alter table your_table add id number generated always as identity;
Cependant, cela génère également de nouvelles valeurs pour la colonne, pour les futures insertions.
Également à propos du total row number
, cela devrait presque toujours générer des valeurs de 1 à "nombre total de lignes", mais de toute façon (je ne sais pas exactement, quand cela peut fonctionner de manière incorrecte), pour vérifier cela, après alter
vous pouvez faire :select count(*), max(id) from your_table
. les valeurs doivent correspondre.