- ベストアンサー
DB2 「既存カラムへのnot null制約の付与・削除方法について」
DB2有識者の方々へ マニュアルをみたのですが、alter tableでは駄目なのでしょうか? すみません。よろしくお願い致します。 <質問1> 既存カラムへnot null制約を付与したいのですが、コマンドを教えてください <質問2> 既存カラムについた、not null制約を削除したいのですが、コマンドを教えてください よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ALTER TABLEでできることは以下の変更なので'not null'の付加・削除はできません。tableの再作成を行いデータのRELOADが必要になります。 ・ 1 つまたは複数の列を表に追加する ・ 主キーの追加、あるいはドロップを行う ・ 1 つまたは複数のユニーク制約、または参照制約の追加、あるいはドロップを行う ・ 1 つまたは複数のチェック制約定義の追加、あるいはドロップを行う ・ 表除去制約の追加、あるいはドロップを行う ・ VARCHAR 列の長さを変更する ・ 参照タイプ列を変更して、有効範囲を追加する ・ 生成される列の生成式を変更する ・ 1 つまたは複数のチェック制約属性、あるいは参照制約属性を変更する ・ 区分化キーの追加、あるいはドロップを行う ・ 表属性(データ・キャプチャー・オプション、pctfree、ロック・サイズ、追加モード など) を変更する ・ 表を記録されていない初期状態(NOT LOGGED INITIALLY) に設定する
その他の回答 (1)
- taka451213
- ベストアンサー率47% (436/922)
こんにちは。 >>既存カラムへnot null制約を付与したいのですが、コマンドを教えてください 「not null」はオプション項目なので、列の定義情報を便宜的に変更してから付与してください。 ALTER TABLE テーブル名 ALTER COLUMN カラム名 SET DATA TYPE そのまま NOT NULL WITH DEFAULT デフォルト値 >>既存カラムについた、not null制約を削除したいのですが、コマンドを教えてください 多分ドロップできたはず・・・。 ALTER TABLE テーブル名 ALTER COLUMN カラム名 DROP NOT NULL 今手元にないので、自信ないです・・・。 (^^ゞ
お礼
アドバイスありがとうございました。 No2の方が回答してくれたとおり、DB2では 「NOT NULL」の付与・削除はALTER TABLEでは できないようです。 どうもありがとうございました。
お礼
ALTER TABLEでは「NOT NULL」の付加・削除はできませんでした。 教えていただいたとおり、tableの再作成で対処しました。 大変助かりました。どうもありがとうございました。