Я хотел бы перенести таблицу, в которой используется составной первичный ключ, на уникальный первичный ключ.
Моя таблица выглядит следующим образом:
CREATE TABLE REGM
(
LNG_CD VARCHAR2(2 BYTE) NOT NULL ENABLE,
REG_NRI NUMBER(10,0) NOT NULL ENABLE,
...
CONSTRAINT PK_REGM PRIMARY KEY (LNG_CD, REG_NRI) ENABLE,
);
Таблица REGM использует LNG_CD и REG_NRI в качестве составного первичного ключа. Вместо этого я хотел бы использовать имя первичного ключа REGM_PK, но по-прежнему использовать LNG_CD и REG_NRI в качестве внешнего ключа.
Пока это мой подход:
1 - Снять ограничение
ALTER TABLE REGM DROP CONSTRAINT PK_REGM;
2 - Добавьте столбец первичного ключа
ALTER TABLE REGM ADD REGM_PK NUMBER(19,0);
3 - Создайте последовательность
CREATE SEQUENCE REGM_SEQ MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 2 CACHE 20 NOORDER NOCYCLE ;
4 - Заполните столбец последовательностью
5 - Сделать столбец REGM_PK не нулевым
6 - Создайте ограничение первичного ключа
Пока что я заблокирован на шаге № 4
Я знаю, что я мог бы также создать/копировать дату/удалить таблицу. Но я бы предпочел сделать это с помощью SQL.