私はdb2バージョン9.7*を使用していますが、NOTNULL列を簡単な方法でNULL可能にすることは不可能のようです。
残念ながら、より開発者に優しいデータベースを使用するソリューションは利用できません。基本的に、MySQLの話では、次のようなことをしたいと思います(MY_COLUMNはかつてVARCHAR(200)NOT NULLでした):
ALTER TABLE MY_TABLE MODIFY COLUMN MY_COLUMN VARCHAR(200);
私はdb2バージョン9.7*を使用していますが、NOTNULL列を簡単な方法でNULL可能にすることは不可能のようです。
残念ながら、より開発者に優しいデータベースを使用するソリューションは利用できません。基本的に、MySQLの話では、次のようなことをしたいと思います(MY_COLUMNはかつてVARCHAR(200)NOT NULLでした):
ALTER TABLE MY_TABLE MODIFY COLUMN MY_COLUMN VARCHAR(200);
私の最後のクエリは次のようになりました。
ALTER TABLE MY_TABLE DATA CAPTURE NONE;
ALTER TABLE MY_TABLE ALTER MY_COLUMN DROP NOT NULL;
ALTER TABLE MY_TABLE DATA CAPTURE CHANGES;
ドキュメントには、ALTERTABLEにはDROPNOTNULLの可能性があると記載されています
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');を呼び出します。