У меня есть несколько столбцов без первичного ключа, а - добавить столбец первичного ключа.
NAME Age
-------------
Peter 45
Bob 25
John 56
Peter 45
Некоторые коллеги предлагают добавить PK с последовательностями и триггерами: Добавить первичный ключ автоматического увеличения в существующую таблицу в оракуле
Это хорошо, но мои клиенты используют пользователя базы данных без прав на добавление последовательностей или триггеров. Я хочу предотвратить контакты с десятками администраторов DBA, чтобы изменить права пользователя или запустить мои скрипты.
Это мое предложение добавить PK только с инструкцией по обновлению: (Мне нужна помощь на шаге 2)
Шаг 1: Создайте столбец идентификатора (у меня есть права БД для этого)
ALTER TABLE PERSON ADD ID NUMBER(10,0);
Шаг 2: Вопрос: Можно ли инициализировать столбец идентификатора с уникальными значениями в зависимости от порядка строк или чего-то еще? Как?
UPDATE PERSON SET ID = something-unique
Шаг 3: добавьте префикс первичного ключа: (у меня есть права для этого)
ALTER TABLE PERSON ADD CONSTRAINT PK_ID PRIMARY KEY(ID);
Шаг 4: Послесловия: первичный ключ управляется и добавляется моим приложением.
Это будет результат:
ID(PK) NAME Age
---------------------
1 Peter 45
2 Bob 25
3 John 56
4 Peter 45
Спасибо, ребята!