но почему-то получаю оишбку
operator does not exist: smallint = task_status, где task_status - это enum
ALTER TABLE task
ALTER COLUMN status TYPE SMALLINT
USING
CASE status
WHEN 'IDLE' THEN 1
WHEN 'IN_PROGRESS' THEN 2
WHEN 'FAILED' THEN 3
WHEN 'COMPLETED' THEN 4
WHEN 'DELETED' THEN 5
WHEN 'ABORTED' THEN 6
END
Что я делаю не так?
кажись вы не в тот чат пишите
Да нет, PostgreSQL, вроде тот
каста в smallint вроде не хватает
Я бы else добавил.
Появились новые вводные Для другого enum эта конструкция работает Как такое может быть? ALTER TABLE credit_report_request_history ALTER COLUMN payment_type TYPE SMALLINT USING CASE payment_type WHEN 'SYSTEM' THEN 0 WHEN 'PAID' THEN 1 WHEN 'FREE' THEN 2 WHEN 'BONUS' THEN 3 END
Вы вот это https://t.me/pgsql/507982 попробовали?
Да, это не помогло
Всё, я понял Проблема была в том, что на этом поле был индекс Нужно сначала удалить индекс, потом конвертировать тип данных
Обсуждают сегодня