Oracle Database 既存テーブルの列を削除する

Oracle Database 既存テーブルの列を削除する

Oracle Databaseで、既存テーブルの列を削除する手順を記述してます。「ALTER TABLE」にテーブル名を指定して「DROP COLUMN」に列名を指定します。ここでは、実際に実行した結果を画像で掲載してます。

環境

  • OS windows11 home
  • Oracle Database 21c Express Edition

手順

既存テーブルの列を削除するには、「ALTER TABLE」の「DROP COLUMN」を使用します。

ALTER TABLE テーブル名
DROP COLUMN 列名;

実際に、以下の「PERSON」というテーブルの列「AGE」を削除してみます。

列「AGE」を削除してみます。

ALTER TABLE PERSON
DROP COLUMN AGE;

実行結果

列「AGE」が削除されていることが確認できます。

外部参照制約があるカラムを削除

外部参照制約があるカラムを削除すると、以下のエラーが発生します。

次のコマンドの開始中にエラーが発生しました : 行 1 -
ALTER TABLE BUSHO
DROP COLUMN ID
エラー・レポート -
ORA-12992: 親キーの列は削除できません。
12992. 00000 -  "cannot drop parent key column"
*Cause:    An attempt was made to drop a parent key column.
*Action:   Drop all constraints referencing the parent key column, or
           specify CASCADE CONSTRAINTS in statement.

削除したい場合は「CASCADE CONSTRAINTS」を使用すると削除することが可能になります。

外部参照されているテーブル「BUSHO」の「ID」を削除する場合は、以下のようになります。

ALTER TABLE BUSHO
DROP COLUMN ID CASCADE CONSTRAINTS;