Oracle 之 表新增欄位後修改字段順序

2022-07-03 07:27:09 字數 1318 閱讀 2013

工作中遇到:在為乙個表新增欄位後,新增欄位在最後,想調整新增欄位的位置。

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語句來任意調整欄位的順序了。

sql示例:

update sys.col$

set col# = decode(name,

'code',

1,'message',

2,'info',

3,'oracle_user',

4,'error_date',

5)where obj# = (select object_id

from all_objects a

where owner = 'emptrain'

and object_name = upper('sys_error_log'))

Oracle 之 表新增欄位後修改字段順序

工作中遇到 在為乙個表新增欄位後,新增欄位在最後,想調整新增欄位的位置。1 原始方法 新建臨時表以儲存正確的順序 create table a 2 as select column1,colum2,a表中的順序 from a 1 刪除表a 1 drop table a 1 新建a 1並從a 2表中賦...

Oracle 之 表新增欄位後修改字段順序

工作中遇到 在為乙個表新增欄位後,新增欄位在最後,想調整新增欄位的位置。1 原始方法 新建臨時表以儲存正確的順序 create table a 2 as select column1,colum2,a表中的順序 from a 1 刪除表a 1 drop table a 1 新建a 1並從a 2表中賦...

MySQL新增字段,修改字段,刪除字段,修改表資訊

mysql的簡單語法,常用,卻不容易記住。當然,這些sql語法在各資料庫中基本通用。下面列出 一 查詢資訊 1.登入資料庫 mysql u root p 資料庫名稱 2.查詢所有資料表 show tables 3.查詢表的字段資訊 desc 表名稱 二 修改表資訊 1.修改表名 2.修改表注釋 三 ...