- ベストアンサー
データがある場合のカラムの削除
データがあるカラムを削除したいのですが、出来ません! drop column column_name だとデータ無しの場合しか通用しなくて・・・。 削除対象のカラムのデータだけを消そうかと、 delete from table_name where column_name=値; も考えたのですが、 where句で引っ掛かったレコードが全部消えてしまいます・・・。 1カラムだけ削除する方法を教えて下さい(><) 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
alter table table_name drop column column_name; で削除できない場合は、制約が対象でない列も参照している場合はエラーが戻されます。 通常であればデータがあっても削除できます。 その列を使用している制約を変更して実行するか cascade constraints句を指定(この場合、制約も削除される)してみてはどうでしょう? #せめてオラクルのバージョンは書きましょう。
その他の回答 (1)
- goooood_job
- ベストアンサー率20% (1/5)
元のテーブルが TableA COL1 COL2 COL3 COL4 で COL4 を削除するとすると CREATE TABLE TableB AS (SELECT COL1 , COL2 , COL3 FROM TableA); TRUNCATE TABLE TableA; DROP COLUMN COL4; INSERT INTO TableA (COL1 , COL2 , COL3) SELECT COL1 , COL2 , COL3 FROM TableB; DROP TABLE TableB; CREATE TABLE xxxx AS でのテーブルのコピーは覚えておくと便利です。
お礼
ありがとうございます!出来ました・・・
お礼
ありがとうございます!出来ました・・・