• ベストアンサー

DB2 「既存カラムへのnot null制約の付与・削除方法について」

DB2有識者の方々へ マニュアルをみたのですが、alter tableでは駄目なのでしょうか? すみません。よろしくお願い致します。 <質問1> 既存カラムへnot null制約を付与したいのですが、コマンドを教えてください <質問2> 既存カラムについた、not null制約を削除したいのですが、コマンドを教えてください よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • yukion
  • ベストアンサー率42% (3/7)
回答No.2

ALTER TABLEでできることは以下の変更なので'not null'の付加・削除はできません。tableの再作成を行いデータのRELOADが必要になります。 ・ 1 つまたは複数の列を表に追加する ・ 主キーの追加、あるいはドロップを行う ・ 1 つまたは複数のユニーク制約、または参照制約の追加、あるいはドロップを行う ・ 1 つまたは複数のチェック制約定義の追加、あるいはドロップを行う ・ 表除去制約の追加、あるいはドロップを行う ・ VARCHAR 列の長さを変更する ・ 参照タイプ列を変更して、有効範囲を追加する ・ 生成される列の生成式を変更する ・ 1 つまたは複数のチェック制約属性、あるいは参照制約属性を変更する ・ 区分化キーの追加、あるいはドロップを行う ・ 表属性(データ・キャプチャー・オプション、pctfree、ロック・サイズ、追加モード など) を変更する ・ 表を記録されていない初期状態(NOT LOGGED INITIALLY) に設定する

Kerorin_V2
質問者

お礼

ALTER TABLEでは「NOT NULL」の付加・削除はできませんでした。 教えていただいたとおり、tableの再作成で対処しました。 大変助かりました。どうもありがとうございました。

その他の回答 (1)

回答No.1

こんにちは。 >>既存カラムへnot null制約を付与したいのですが、コマンドを教えてください 「not null」はオプション項目なので、列の定義情報を便宜的に変更してから付与してください。 ALTER TABLE テーブル名 ALTER COLUMN カラム名 SET DATA TYPE そのまま NOT NULL WITH DEFAULT デフォルト値 >>既存カラムについた、not null制約を削除したいのですが、コマンドを教えてください 多分ドロップできたはず・・・。 ALTER TABLE テーブル名 ALTER COLUMN カラム名 DROP NOT NULL 今手元にないので、自信ないです・・・。 (^^ゞ

Kerorin_V2
質問者

お礼

アドバイスありがとうございました。 No2の方が回答してくれたとおり、DB2では 「NOT NULL」の付与・削除はALTER TABLEでは できないようです。 どうもありがとうございました。

関連するQ&A