探しているコマンドは次のとおりです:
alter table tblName drop column columnName
どこで tblName
テーブルの名前と columnName
です は列の名前ですが、最初に行う必要があることがいくつかあります。
- 列への外部キー参照がある場合は、最初にそれらを取り除く必要があります。
- その列を使用しているインデックスがある場合は、それを削除するか、その列を使用しないように調整する必要があります。
このコマンドのパフォーマンスが必ずしも良いとは限らないことに注意してください。 1 つのオプションは、誰もデータベースにアクセスしていないことを確認できるダウンタイム期間を待ち、現在のテーブルの名前を変更してから create table
を使用することです。 insert into ... select from
削除したくない列を転送します。
Oracle の最近のリリースの 1 つには、物理的に削除せずに列を未使用としてマークするだけの論理的な削除があります。参照できなくなり、alter table ... drop unused columns
の行に沿ってコマンドがあるため、同じ効果があります。 これは静かな時間に実行されることを意図しており、実際に物理的に削除するという大変な作業を行います。
これには、ビジー時にデータベースのパフォーマンスを低下させることなく、列をすぐに「非表示」にするという利点があります。