SELECT INTO
SELECT INTO
Создание повой таблицы по результатам команды SELECT.
Синтаксис
SELECT [ ALL | DISTINCT [ ON ( уникальное_выражение [. ...] ) ] ]
цель [ AS выходное имя ] [, ...] [ INTO [ TEMPORARY | TEMP ] [ TABLE ] новая_таблица ]
[ FROM источник [ { . | CROSS JOIN } ...] ]
[ WHERE условие_фильтрации ]
[ GROUP BY условие_группировки [, ...] ]
[ HAVING агрегатное_усповие [, ...] ]
[ { UNION | INTERSECT | EXCEPT } [ ALL ] подзапрос ]
[ ORDER BY выражение [ ASC | DESC | USING оператор ] [. ...] ]
[ FOR UPDATE [ OF таблица [, ...]]]
[ LIMIT { число | ALL } [ { OFFSET | , } начало ] ]
источник ::= { [ ONLY ] таблица [ * ]
[ [ AS ] псевдоним_исгочника [ ( сгшсок_псевдонимов) ] ] |
( подзапрос ) [ [ AS ] псевдоним [ ( список_псевдонимов ) ] ] |
источник [ NATURAL ] тип_объединения источник
[ ON ( условие_обьединения ) USING ( список_полей_обьединения ) ]
тип_обьединения ::= [ INNER |
LEFT [ OUTER ]
RIGHT [ OUTER ] |
FULL [ OUTER ] ] JOIN
Параметры
Большая часть параметров команды SELECT INTO совпадает с параметрами команды SELECT. В команде SELECT INTO поддерживаются всего два новых параметра.
- TEMPORARY, TEMP. Ключевое слово TEMPORARY (или TEMP) означает, что таблица предназначена для временного использования; после завершения сеанса она автоматически уничтожается.
- новая_таблица. Имя таблицы, создаваемой для хранения записей итогового набора запроса. Таблица создается автоматически и не должна существовать до момента выполнения команды.
Результаты
Возможные результаты перечислены в описаниях команд CREATE TABLE и SELECT.
Описание
Команда SELECT INTO выполняет запрос и использует полученные записи для заполнения новой (автоматически созданной) таблицы. Имена полей и типы данных новой таблицы определяются структурой записей, полученных в результате запроса. С функциональной точки зрения команда SELECT INTO эквивалентна команде CREATE TABLE AS. На практике рекомендуется использовать команду CREATE TABLE AS, поскольку команда SELECT INTO не является стандартной и неправильно интерпретируется PL/pgSQL.