Я хотел бы перенести таблицу, которая использует составной первичный ключ, на уникальный первичный ключ.
Моя таблица выглядит следующим образом:
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 в качестве внешнего ключа.
Пока что мой подход такой:
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.