工作中遇到:在为一个表新增字段后,新增字段在最后,想调整新增字段的位置。
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语句来任意调整字段的顺序了。
本文介绍两种调整Oracle数据库表字段顺序的方法:一是通过创建临时表重新排序,适用于字段较少的情况;二是利用系统数据库进行字段顺序调整,适用于字段较多的表。通过查询表ID和字段信息,使用UPDATE语句实现字段位置的灵活调整。
2188

被折叠的 条评论
为什么被折叠?



