11.21.4 既存の表を圧縮表に変更する方法
(1) 既存の表の列を圧縮列に変更する場合
定義系SQLのALTER TABLEの列属性変更定義(CHANGE 列名)で圧縮列に変更することはできません。そのため,既存の表の列を圧縮列に変更する場合は,次の手順で行ってください。
〈手順〉
-
既存の表のアンロード
既存の表をアンロードします。
-
既存の表の削除
DROP TABLEで既存の表をいったん削除します。
-
表の再定義
CREATE TABLEで,圧縮列に変更する列に圧縮指定をして,表を再定義します。圧縮指定以外は変更しないでください。
-
表のリロード
3.で再定義した表に,1.でアンロードしたアンロードデータファイルをリロードします。
データのアンロード及びリロードについては,マニュアル「HiRDB コマンドリファレンス」を参照してください。
- 参考
-
圧縮列に変更する列が表の最後の列の場合,上記手順の2.及び3.は次の手順でも圧縮列に変更できます。
-
既存の列の削除,及び圧縮列の追加
PURGE TABLEで表のデータを0件にし,ALTER TABLEの列削除定義(DROP 列名)で圧縮列に変更する列をいったん削除します。次に,ALTER TABLEの列追加定義(ADD 列名)で,削除した列に圧縮指定をして再定義(追加)します。
-
(2) 既存の表の最後に新規の圧縮列を追加する場合
定義系SQLのALTER TABLEの列追加定義(ADD 列名)で圧縮指定をして圧縮列を追加します。その後,圧縮列にデータロードすると,データが圧縮して格納されます。
- 参考
-
ALTER TABLEの列追加定義では,表の最後に新しい列を追加します。そのため,圧縮列は表の最後の列にしか追加できません。