程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 修改Oracle數據庫表的主鍵對應列的數據類型

修改Oracle數據庫表的主鍵對應列的數據類型

編輯:Oracle教程

修改Oracle數據庫表的主鍵對應列的數據類型


我們產品從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;

--添加一個與原來的列一樣名字的列
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);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved