修改Oracle數據庫表的主鍵對應列的數據類型
來源:程序員人生 發布時間:2015-02-28 07:50:20 閱讀次數:3348次
我們產品從SPC100升級到SPC200的時候,由于數據庫表列的數據類型產生了改變,需要寫SQL腳本,完成數據庫的升級。需要將表T_MOBILE_INDVCONFIG的主鍵列id從varchar2(100),改成number(17)。可以參考以下SQL:
--將原來的ID列重命名為bak_id
ALTER TABLE T_MOBILE_INDVCONFIG RENAME COLUMN id TO bak_ID;
--添加1個與原來的列1樣名字的列
ALTER TABLE T_MOBILE_INDVCONFIG ADD id NUMBER(17);
--將bak_id中的數據轉換類型并保存到新加的ID列
UPDATE T_MOBILE_INDVCONFIG SET ID = CAST(bak_ID AS NUMBER(17));
--刪除原本的列
ALTER TABLE T_MOBILE_INDVCONFIG DROP COLUMN bak_ID;
--設置新列屬性,這里例子是設置為非空
ALTER TABLE T_MOBILE_INDVCONFIG MODIFY (ID NUMBER(17) NOT NULL);
--重建主鍵,由于原來的已被刪除,原來的ID列有索引的也需要重建
ALTER TABLE T_MOBILE_INDVCONFIG ADD CONSTRAINT PK_SYS_SMSGATE PRIMARY KEY (ID);
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈