Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Вставка в таблицу значений ENUM / 3 сообщений из 3, страница 1 из 1
27.01.2021, 10:41
    #40039249
mariem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка в таблицу значений ENUM
Доброго дня. Есть запрос на вставку значений в таблицу, где значение поля rating - элемент ENUM. выполнение следующего запроса провоцирует ошибку "столбец "rating" имеет тип mpaa_rating, а выражение - text
Подсказка: Перепишите выражение или преобразуйте его тип.". Если выполнять вставку строк по одной, то ошибки нет. Как ее обойти и оставить селекты объединенными, а не писать трижды insert? (значения, передаваемые в поле rating, соответствуют возможным значениям из enum).

INSERT INTO film (title, rating)
SELECT UPPER('Avengers'), 'PG-13'
UNION ALL
SELECT UPPER('Interstellar'), 'PG-13'
UNION ALL
SELECT UPPER('Spirited Away'), 'PG'
RETURNING *;
...
Рейтинг: 0 / 0
27.01.2021, 10:50
    #40039251
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка в таблицу значений ENUM
mariem,

зачем union all вместо стандартного способа вставки нескольких строк values?

Как сказано в подсказке - добавьте явное преобразование типов. cast(.. as ..) или более традиционно для postgresql через ::
...
Рейтинг: 0 / 0
27.01.2021, 10:55
    #40039253
mariem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка в таблицу значений ENUM
Melkij, я немного сократила данный запрос для наглядности, на самом деле в select есть данные из другой таблицы, которые я получаю через from. благодарю, через приведение типов действительно не ругается
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Вставка в таблицу значений ENUM / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]