Подтвердить что ты не робот

Сделать столбец с нулевым значением DB2

Я использую db2 version 9.7 *, и кажется невозможным сделать NULL-столбец NOT NULL любым простым способом.

К сожалению, решение использовать более доступную для разработчиков базу данных недоступно. В основном, в MySQL говорят, я хочу сделать что-то вроде этого (где MY_COLUMN раньше был VARCHAR (200) NOT NULL):

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

Ответ 1

Мой окончательный запрос оказался примерно таким:

ALTER TABLE MY_TABLE DATA CAPTURE NONE;
ALTER TABLE MY_TABLE ALTER MY_COLUMN DROP NOT NULL;
ALTER TABLE MY_TABLE DATA CAPTURE CHANGES;

Ответ 2

документация говорит, что ALTER TABLE имеет возможность DROP NOT NULL

Ответ 3

ALTER TABLE TABLE_NAME ALTER COLUMN COLUMN_NAME DROP NOT NULL;

работает в DB2 9.7 и выше. Как бы вы не захотели выполнить таблицу reorg (в 9.7 db2 ставит таблицу в состояние ожидания reorg, то же самое в 10.5 FP 5 тоже):

вызвать sysproc.admin_cmd ('reorg table TABLE_NAME');