#sql #postgresql
Вопрос:
У меня есть следующий запрос, который должен изменить тип поля с реального на логический:
ALTER TABLE some_table ALTER COLUMN test_flag TYPE boolean USING test_flag::boolean;
но это не удается с ошибкой:
ERROR: cannot cast type real to boolean
LINE 1: ...st_flag TYPE boolean USING test_flag::boolean;
Комментарии:
1. Как вы решаете, какие
REAL
значения представляютTRUE
FALSE
собой логические значения?
Ответ №1:
Используйте другое USING
предложение для преобразования данных:
ALTER TABLE some_table
ALTER COLUMN test_flag TYPE boolean USING (test_flag <> 0.0);