工作中遇到:在為一個表新增字段后,新增字段在最后,想調整新增字段的位置。
1、原始方法:
--新建臨時表以存儲正確的順序 create table A_2 as select (column1,colum2,……A表中的順序) from A_1 ; --刪除表A_1 drop table A_1; --新建A_1並從A_2表中賦予其正確的順序和值 create table A_1 as select * from A_2; --刪除臨時表A_2 drop table A_2;
這種方法對字段較少的表來說還不會顯得太麻煩,但是對於字段較多的表來說就吃力了。
2、利用系統數據庫
[1] 首先,以sys用戶的身份登錄PL/SQL
[2] 查詢出你要更改的表的ID,以我本地的數據為例,我要改'FINACE'用戶下'INCOME'這張表。注:ORACLE中的表要用大寫。
select object_id from all_objects where owner = 'FINACE' and object_name = 'INCOME' ;
得到INCOME這張表的i,如圖所示:
[3] 根據id去查詢該表中的字段以及字段序號
select obj#,col#,name from sys.col$ where obj#=73626;
結果如下圖所示:
[4] 第二列便是字段的序號,就可以用update語句來任意調整字段的順序了。