2
我想將使用複合主鍵的表遷移到唯一的主鍵。如何在SQL中從組合主鍵遷移到單個屬性鍵?
我的表是如下:
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方式來做。
標題是你想要什麼不良的解釋。任何主鍵都是唯一的 - 包括複合鍵。看起來你真正想要的是用一個屬性鍵替換一個複合鍵。 – sqlvogel 2010-11-10 16:29:48
@dportas謝謝,修正 – 2010-11-10 16:42:26