Предпочтительный способ добавить суррогатный ключ к существующей Таблице базы данных Oracle

Я должен изменить существующую таблицу в Oracle 10 г DB с несколькими тысячами записей для добавления суррогатного ключа автонумерации. Один путь, который прибывает по моему мнению, к

  1. Создайте новую последовательность
  2. Создайте идентификационный столбец, позволив нулевые значения
  3. Обновление идентификационного столбца с последовательностью
  4. Измените таблицу для добавления "не пустого" и "первичного ключа" для нового идентификационного столбца

Существует ли более легкий или более эффективный способ сделать это (или есть ли некоторая причина, почему это не работало бы)?

8
задан simon 18 February 2010 в 09:09
поделиться

1 ответ

Я бы сделал это следующим образом:

  1. Создайте столбец id , разрешающий нулевые значения

  2. Выполните этот запрос:

     ОБНОВИТЬ mytable 
    SET id = rownum 
     
  3. Измените таблицу, чтобы добавить NOT NULL и ПЕРВИЧНЫЙ КЛЮЧ для нового столбца идентификаторов

  4. Создайте последовательность, задав ей значение MAX (id ) + 1 и используйте его для дальнейших вставок.

8
ответ дан 5 December 2019 в 20:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: