修改Oracle資料庫表的主鍵對應列的資料類型,oracle主鍵

來源:互聯網
上載者:User

修改Oracle資料庫表的主鍵對應列的資料類型,oracle主鍵

我們產品從SPC100升級到SPC200的時候,由於資料庫表列的資料類型發生了改變,需要寫SQL指令碼,完成資料庫的升級。需要將表T_MOBILE_INDVCONFIG的主鍵列id從varchar2(100),改成number(17)。可以參考如下SQL:

--將原來的ID列重新命名為bak_idALTER 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);

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.