Для замены исходных значений на новые мы используем конструкцию CASE WHEN
... THEN ... ELSE ... END.
Выполнить операцию не удастся, СУБД выдаст сообщение об ошибке:
ОШИБКА: ограничение-проверку "seats_fare_conditions_check" нарушает
некоторая строка
,
→
И в самом деле, в определении таблицы есть ограничение CHECK, которое требует,
чтобы значение столбца fare_conditions выбиралось из списка: «Economy», «Comfort»,
«Business». При замене символьных значений на числовые это ограничение будет за-
ведомо нарушаться. Следовательно, необходимо в команду ALTER TABLE добавить
операцию удаления этого ограничения. Пробуем новый вариант команды:
ALTER TABLE seats
DROP CONSTRAINT seats_fare_conditions_check,
ALTER COLUMN fare_conditions SET DATA TYPE integer
USING ( CASE WHEN fare_conditions = 'Economy' THEN 1
Достарыңызбен бөлісу: