15.8.2 実表に列を追加できない場合
定義系SQLのALTER TABLE文を使用して,実表に列を追加できない場合の対処方法について説明します。
次に示すどれかに該当する場合は,実表に列を追加できません。
-
操作対象の実表が更新不可状態の場合
-
操作対象の実表が,行を格納するセグメントが割り当てられている状態であり,かつFIX表の場合
-
操作対象の実表が,行を格納するセグメントが割り当てられている状態であり,かつCREATE TABLE文を実行した際にBRANCH ALLを指定した実表の場合
-
行を格納するセグメントが割り当てられている状態の実表に対して,ALTER TABLE文の列定義でNOT NULLを指定した場合
このうち,「実表が更新不可状態になっている場合」は,「15.8.1 実表が更新不可状態になった場合」を参照して,更新不可状態を解除したあとで,ALTER TABLE文を再実行してください。
それ以外の場合は,次に示す対処方法で,列を追加してください。
- ■実表に列を追加できない場合の対処方法
-
-
実表のデータをファイルに出力する
adbexportコマンドを実行して,実表のすべてのデータをファイルに出力してください。出力データファイルが作成されます。ここで作成された出力データファイルは,手順4.および手順5.で使用する入力データファイルとなります。
-
実表の全行データを削除する
TRUNCATE TABLE文を実行して,実表のすべての行データを削除してください。
-
実表に列を追加する
ALTER TABLE文を再実行して,実表に列を追加してください。
-
入力データファイルを編集する
手順1.で作成した入力データファイルに対して,手順3.で追加した列に格納するデータを追加してください
-
実表にデータを格納する
adbimportコマンドを実行して,手順4.で編集した入力データファイルのデータを,実表に格納してください。
-
- メモ
-
行を格納するセグメントが割り当てられている状態については,「5.3.1 B-treeインデクスを定義する場合の注意点(B-treeインデクスの未完状態)」を参照してください。