Redshift - Как удалить NOT NULL ограничение?

Так как Redshift не поддерживает ALTER COLUMN, я хотел бы знать, можно ли удалить ограничения NOT NULL из столбцов в Redshift.

Ответ 1

Вы не можете изменить таблицу.

Существует альтернативный подход. Вы можете создать новый столбец с ограничением NULL. Скопируйте значения из старого столбца в новый столбец и затем отпустите старый столбец.

Что-то вроде этого:

ALTER TABLE table1 ADD COLUMN somecolumn (definition as per your reqm);
UPDATE table1 SET somecolumn = oldcolumn;
ALTER TABLE table1 DROP COLUMN oldcolumn;
ALTER TABLE table1 RENAME COLUMN somecolumn TO oldcolumn;

Ответ 2

Невозможно изменить столбец в Redshift.

Я могу предложить вам создать новый столбец, скопировать значения из старого в новый столбец и удалить старый столбец.

ALTER TABLE Table1 ADD COLUMN new_column (___correct_column_definition___);
UPDATE Table1 SET new_column = column;
ALTER TABLE Table1 DROP COLUMN column;
ALTER TABLE Table1 RENAME COLUMN new_column TO column;