Документация по PostgreSQL 9.1.1 | ||||
---|---|---|---|---|
Prev | Fast Backward | Chapter 7. Запросы | Fast Forward | Next |
VALUES предоставляет метод генерации "постоянной таблицы", которая может быть использована в запросе без фактического создания и размещения этой таблицы на диске. Синтаксис следующий:
VALUES ( выражение [, ...] ) [, ...]
Каждый заключённый в круглые скобки список генерирует строку в таблице. Все списки должны иметь то же самое количество элементов (т.е. количество колонок в таблице) и соответствующие элементы в каждом списке должны иметь совместимые типы данных. Фактический тип данных, назначаемый каждой колонке, определяется используя те же правила, что и для UNION (см. Section 10.5).
Пример:
VALUES (1, 'one'), (2, 'two'), (3, 'three');
вернёт таблицу с двумя колонками и тремя строками. Это эквивалентно:
SELECT 1 AS column1, 'one' AS column2 UNION ALL SELECT 2, 'two' UNION ALL SELECT 3, 'three';
По умолчанию, PostgreSQL назначает колонкам таблицы VALUES имена column1, column2 и т.д. Эти имена колонок не оговариваются стандартом SQL и разные СУБД генерируют их по-разному, так что обычно, лучше перекрыть имена, присвоенные по умолчанию с помощью списка табличных псевдонимов.
Синтаксически, VALUES, за которым следуют списки выражений, считается эквивалентным:
SELECT список_выбора FROM табличное_выражение
и может появится везде, где может появляться SELECT. Например, вы можете использовать эту конструкцию как часть UNION или прикрепить к ней спецификацию_сортировки (ORDER BY, LIMIT, и/или OFFSET). VALUES наиболее часто используется как источник данных в команде INSERT и затем наиболее часто как подзапрос.
Подробности см. в VALUES.