Oracleデータベーステーブルのフィールドの順序を変更する方法

小云云
リリース: 2017-12-11 13:54:43
オリジナル
3384 人が閲覧しました

この記事では主にOracleデータベーステーブルのフィールド順序を変更する方法を紹介します。変更方法を紹介する前に、まずOracleデータベーステーブルに新しいフィールドを作成する方法を詳しく紹介します。必要な方はサンプルコードを通じて、以下のエディターで学習してみましょう。皆さんのお役に立てれば幸いです。

前書き

少し前に、Oracle でのテーブル フィールドの順序の調整について誰かが私に質問しました。問題は、テーブル構造を設計した後、後でテーブルにフィールドを追加する必要がある場合、そのフィールドはデフォルトでテーブルの最後に配置され、フィールドが多すぎるため、関連するフィールドをまとめたいことです。このとき、フィールドの順序を変更します。順序を変更する前に、まず Oracle データベース テーブルにフィールドを追加する方法を見てみましょう。

新しいフィールド:

フィールドを追加するための構文: alter table tablename add (column datatype [default value][null/not null],….);

テーブル構造の作成:

create table test1
(id varchar2(20) not null);
ログイン後にコピー

フィールドの追加:

alter table test1
add (name varchar2(30) default ‘无名氏' not null);
ログイン後にコピー

1 つの SQL ステートメントを使用して 3 つのフィールドを同時に追加:

alter table test1
add (name varchar2(30) default ‘无名氏' not null,

age integer default 22 not null,

has_money number(9,2)

);
ログイン後にコピー

フィールドの順序の変更

最初のオリジナルのメソッド:

削除して再構築、これシンプルで大雑把な方法ですが、非科学的です

--新建临时表以存储正确的顺序
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 またはシステム権限が必要です

2. 変更する必要があるテーブルの ID をクエリします

select object_id
 from all_objects
 where owner = 'ITHOME'
 and object_name = 'TEST';
ログイン後にコピー

注: ITHOME はユーザー、TEST は変更するテーブルです。テーブル名は大文字にする必要があります

3. テーブル内のすべてのフィールドの順序を ID で調べます

4. 順序を変更します

select obj#, col#, name 
 from sys.col$ 
 where obj# = '103756' order by col#
ログイン後にコピー

または、変更する更新の 3 番目のステップのステートメントの直後に追加します

最後に Oracle サービスをコミットして再起動します

関連する推奨事項:


Oracle での Contains 関数の使用法の概要について

Oracle ページング クエリの基本原理の詳細な説明

Yan Shiba Oracle ビデオ リソース (ソース コースウェア) の共有

以上がOracleデータベーステーブルのフィールドの順序を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート