dポイントプレゼントキャンペーン実施中!

データがあるカラムを削除したいのですが、出来ません!

drop column column_name
だとデータ無しの場合しか通用しなくて・・・。

削除対象のカラムのデータだけを消そうかと、
delete from table_name where column_name=値;
も考えたのですが、
where句で引っ掛かったレコードが全部消えてしまいます・・・。

1カラムだけ削除する方法を教えて下さい(><)
宜しくお願いします。

A 回答 (2件)

alter table table_name drop column column_name;


で削除できない場合は、制約が対象でない列も参照している場合はエラーが戻されます。
通常であればデータがあっても削除できます。
その列を使用している制約を変更して実行するか cascade constraints句を指定(この場合、制約も削除される)してみてはどうでしょう?

#せめてオラクルのバージョンは書きましょう。
    • good
    • 0
この回答へのお礼

ありがとうございます!出来ました・・・

お礼日時:2006/10/19 17:50

元のテーブルが


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 でのテーブルのコピーは覚えておくと便利です。
    • good
    • 1
この回答へのお礼

ありがとうございます!出来ました・・・

お礼日時:2006/10/19 17:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す