-4

4列のテーブルを作成しました。テーブルの構造を変更する必要があります。4 列目と 2 列目の位置を恒久的に交換する必要があります。これはオラクルで可能ですか?

4

5 に答える 5

5

ありえない。これを参照してください。

Oracle では、列を既存のテーブルの末尾に追加することのみが許可されています。

そのため、テーブルを削除して再作成する必要があります。

于 2013-03-14T14:27:31.070 に答える
2

同じデータ型の場合は、テーブルの列の名前を変更するだけです。そうでない場合は、Alter-SeanとEgorの例を参照してください。

名前の変更: http ://docs.oracle.com/cd/E11882_01/server.112/e25494/tables006.htm#ADMIN11662

そしてインタビューで彼らはショーンの答えを探しています。参考までに...

于 2013-03-14T15:55:09.993 に答える
2

列col1とcol2の交換col1はであり、col2はで
あると想定されます。intvarchar2(20)

-- drop all indexes and constraints concerning col1 and col2
alter table your_table add temp_col int;          -- type of col1
update your_table set col1 = null, temp_col = col1;
alter table your_table modify col1 varchar2(20);  -- type of col2
update your_table set col2 = null, col1 = col2;
alter table your_table modify col2 int;           -- type of col1
update your_table set col2 = temp_col;
alter table your_table drop column temp_col;
alter table your_table rename column col1 to temp_col;
alter table your_table rename column col2 to col1;
alter table your_table rename column temp_col to col1;  
-- recreate indexes and constraints
于 2013-03-14T15:31:57.627 に答える
2

なぜこれが必要なのですか?列の順序は SQL では意味がありません。

于 2013-03-14T15:14:39.893 に答える