Так как Redshift не поддерживает ALTER COLUMN
, я хотел бы знать, можно ли удалить ограничения NOT NULL из столбцов в Redshift.
Redshift - Как удалить NOT NULL ограничение?
Ответ 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;