Я должен изменить существующую таблицу в Oracle 10 г DB с несколькими тысячами записей для добавления суррогатного ключа автонумерации. Один путь, который прибывает по моему мнению, к
Существует ли более легкий или более эффективный способ сделать это (или есть ли некоторая причина, почему это не работало бы)?
Я бы сделал это следующим образом:
Создайте столбец id
, разрешающий нулевые значения
Выполните этот запрос:
ОБНОВИТЬ mytable
SET id = rownum
Измените таблицу, чтобы добавить NOT NULL
и ПЕРВИЧНЫЙ КЛЮЧ
для нового столбца идентификаторов
Создайте последовательность, задав ей значение MAX (id ) + 1
и используйте его для дальнейших вставок.