artymail
@artymail

Как явно обратиться к столбцам составного типа в Postgre?

Есть составной тип:
CREATE TYPE t_well AS (
  id INTEGER,
  name VARCHAR(10),
  altitude NUMERIC(10,3),
  x NUMERIC(10,6),
  y NUMERIC(10,6)
);


При использовании этого типа в запросах необходимо строго следовать порядку столбцов в определении. Если я буду пытаться передать переменную этого типа в функцию:
SELECT * FROM p_well_operations_new(1, ROW(1, 'bla', 42, 1.99, 3.45));

то нельзя менять порядок следования столбцов, иначе значения будут записаны неверно.

Как явно указать столбцы в составном типе? Это вообще возможно?

Как-то вот так к примеру:
SELECT * FROM p_well_operations_new(1, ROW(id=1, name='bla',...));
  • Вопрос задан
  • 275 просмотров
Пригласить эксперта
Ответы на вопрос 2
@krypt3r
При выборке поля из значения составного типа также возможны подобные синтаксические казусы. Например, чтобы выбрать одно поле из результата функции, возвращающей составное значение, потребуется написать что-то подобное:

SELECT (my_func(...)).field FROM ...
Без дополнительных скобок в этом запросе произойдёт синтаксическая ошибка.

Хотя у вас несколько другой вопрос... Читайте доки.
Ответ написан
Комментировать
artymail
@artymail Автор вопроса
В документации ничего полезного не нашел
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы