20

私はdb2バージョン9.7*を使用していますが、NOTNULL列を簡単な方法でNULL可能にすることは不可能のようです。

残念ながら、より開発者に優しいデータベースを使用するソリューションは利用できません。基本的に、MySQLの話では、次のようなことをしたいと思います(MY_COLUMNはかつてVARCHAR(200)NOT NULLでした):

ALTER TABLE MY_TABLE MODIFY COLUMN MY_COLUMN VARCHAR(200);
4

3 に答える 3

29

私の最後のクエリは次のようになりました。

ALTER TABLE MY_TABLE DATA CAPTURE NONE;
ALTER TABLE MY_TABLE ALTER MY_COLUMN DROP NOT NULL;
ALTER TABLE MY_TABLE DATA CAPTURE CHANGES;
于 2011-08-02T14:08:58.730 に答える
12

ドキュメントには、ALTERTABLEにはDROPNOTNULLの可能性があると記載されています

于 2011-08-02T13:43:25.727 に答える
5

ALTER TABLE TABLE_NAME ALTER COLUMN COLUMN_NAME DROP NOT NULL;

DB29.7以降で動作します。ただし、テーブルの再編成を実行したい場合があります(9.7 db2では、テーブルは再編成保留状態になります。10.5FP 5でも同じです)。

sysproc.admin_cmd('reorg table TABLE_NAME');を呼び出します。

于 2016-03-03T06:47:44.967 に答える