6

ID、NAME、AGE、COUNTRYの4つの列を持つテーブルがあります。しばらくの間、以下のコマンドでAGE列を未使用として設定しました

alter table Personal set unused column AGE;

今、同じ列 AGE をもう一度使用したいのですが、Oracle(10g) でこれを行う方法。

列を削除し、列を未使用に設定するのが最適なオプションです。ガイドしてください。

4

1 に答える 1

15

未使用の列を再利用することはできません。列に対して可能な唯一のアクションは、テーブルから削除することです。

ただし、未使用の列を削除しなくても、同じ名前の新しい列を追加できます。

ドキュメントから

ALTER TABLE...DROP UNUSED COLUMNS ステートメントは、未使用の列に対して許可される唯一のアクションです。テーブルから未使用の列を物理的に削除し、ディスク領域を再利用します。

後続の ALTER TABLE ステートメントでは、オプションの句 CHECKPOINT が指定されています。この句により、指定された行数 (この場合は 250) を処理した後にチェックポイントが適用されます。

ALTER TABLE hr.admin_emp DROP UNUSED COLUMNS CHECKPOINT 250;

そして、この他の(私の強調):

列を未使用としてマークする

大きなテーブルのすべての行から列データを削除するのにかかる時間が気になる場合は、ALTER TABLE...SET UNUSED ステートメントを使用できます。このステートメントは、1 つ以上の列を未使用としてマークしますが、実際にはターゲット列データを削除したり、これらの列が占有するディスク領域を復元したりしません。ただし、未使用としてマークされた列はクエリまたはデータ ディクショナリ ビューに表示されず、その名前は新しい列でその名前を再利用できるように削除されます。列に定義されているすべての制約、インデックス、および統計も削除されます。

于 2012-12-01T09:06:26.520 に答える