SELECT INTO
SELECT INTO â ÑоздаÑÑ ÑаблиÑÑ Ð¸Ð· ÑезÑлÑÑаÑов запÑоÑа
СинÑакÑиÑ
[ WITH [ RECURSIVE ]запÑоÑ_WITH[, ...] ] SELECT [ ALL | DISTINCT [ ON (вÑÑажение[, ...] ) ] ] * |вÑÑажение[ [ AS ]имÑ_ÑезÑлÑÑаÑа] [, ...] INTO [ TEMPORARY | TEMP | UNLOGGED ] [ TABLE ]новаÑ_ÑаблиÑа[ FROMÑлеменÑ_FROM[, ...] ] [ WHEREÑÑловие] [ GROUP BYвÑÑажение[, ...] ] [ HAVINGÑÑловие] [ WINDOWимÑ_окнаAS (опÑеделение_окна) [, ...] ] [ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ]вÑбоÑка] [ ORDER BYвÑÑажение[ ASC | DESC | USINGопеÑаÑоÑ] [ NULLS { FIRST | LAST } ] [, ...] ] [ LIMIT {ÑиÑло| ALL } ] [ OFFSETнаÑало[ ROW | ROWS ] ] [ FETCH { FIRST | NEXT } [ÑиÑло] { ROW | ROWS } ONLY ] [ FOR { UPDATE | SHARE } [ OFимÑ_ÑаблиÑÑ[, ...] ] [ NOWAIT ] [...] ]
ÐпиÑание
SELECT INTO ÑоздаÑÑ Ð½Ð¾Ð²ÑÑ ÑаблиÑÑ Ð¸ заполнÑÐµÑ ÐµÑ Ð´Ð°Ð½Ð½Ñми, полÑÑеннÑми из запÑоÑа. ÐаннÑе не пеÑедаÑÑÑÑ ÐºÐ»Ð¸ÐµÐ½ÑÑ, как Ñ Ð¾Ð±ÑÑной командой SELECT. СÑолбÑÑ Ð½Ð¾Ð²Ð¾Ð¹ ÑаблиÑÑ Ð¿Ð¾Ð»ÑÑаÑÑ Ð¸Ð¼ÐµÐ½Ð° и ÑÐ¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ
, ÑвÑзаннÑе Ñ Ð²ÑÑ
однÑми ÑÑолбÑами SELECT.
ÐаÑамеÑÑÑ
TEMPORARYилиTEMPÐÑли Ñказано, ÑÐ¾Ð·Ð´Ð°Ð²Ð°ÐµÐ¼Ð°Ñ ÑаблиÑа бÑÐ´ÐµÑ Ð²Ñеменной. Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº CREATE TABLE.
UNLOGGEDÐÑли Ñказано, ÑÐ¾Ð·Ð´Ð°Ð²Ð°ÐµÐ¼Ð°Ñ ÑаблиÑа бÑÐ´ÐµÑ Ð½ÐµÐ¶ÑÑналиÑÑемой. Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº CREATE TABLE.
новаÑ_ÑаблиÑаÐÐ¼Ñ Ñоздаваемой ÑаблиÑÑ (возможно, дополненное ÑÑ ÐµÐ¼Ð¾Ð¹).
ÐÑе дÑÑгие паÑамеÑÑÑ Ð¿Ð¾Ð´Ñобно опиÑÑваÑÑÑÑ Ð² SELECT.
ÐамеÑаниÑ
Ðоманда SELECT INTO дейÑÑвÑÐµÑ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð¾ CREATE TABLE AS, но ÑекомендÑеÑÑÑ Ð¸ÑполÑзоваÑÑ CREATE TABLE AS, Ñак как SELECT INTO не поддеÑживаеÑÑÑ Ð² ECPG и PL/pgSQL, вÑледÑÑвие Ñого, ÑÑо они воÑпÑинимаÑÑ Ð¿Ñедложение INTO по-ÑвоемÑ. Ð ÑÐ¾Ð¼Ñ Ð¶Ðµ, CREATE TABLE AS пÑедоÑÑавлÑÐµÑ Ð±Ð¾Ð»ÑÑий Ð½Ð°Ð±Ð¾Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑей, Ñем SELECT INTO.
ЧÑÐ¾Ð±Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸ÑÑ ÑÑÐ¾Ð»Ð±ÐµÑ OID в ÑаблиÑÑ, ÑоздаваемÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ SELECT INTO, необÑ
одимо ÑÑÑановиÑÑ ÐºÐ¾Ð½ÑигÑÑаÑионнÑÑ Ð¿ÐµÑеменнÑÑ default_with_oids. С дÑÑгой ÑÑоÑонÑ, можно иÑполÑзоваÑÑ CREATE TABLE AS Ñ Ð¿Ñедложением WITH OIDS.
ÐÑимеÑÑ
Создание ÑаблиÑÑ films_recent, ÑодеÑжаÑей ÑолÑко поÑледние запиÑи из ÑаблиÑÑ films:
SELECT * INTO films_recent FROM films WHERE date_prod >= '2002-01-01';
СовмеÑÑимоÑÑÑ
Ð ÑÑандаÑÑе SQL команда SELECT INTO пÑименÑеÑÑÑ Ð´Ð»Ñ Ð¿ÐµÑедаÑи ÑкалÑÑнÑÑ
знаÑений клиенÑÑкой пÑогÑамме, но не Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð¹ ÑаблиÑÑ. Ðменно ÑÑо пÑименение Ð¸Ð¼ÐµÐµÑ Ð¼ÐµÑÑо в ECPG (Ñм. ÐлавÑ 32) и в PL/pgSQL (Ñм. ÐлавÑ 39). Ð Postgres Pro команда SELECT INTO ÑвÑзана Ñ Ñозданием ÑаблиÑÑ Ð¿Ð¾ иÑÑоÑиÑеÑким пÑиÑинам. Рновом коде Ð´Ð»Ñ ÑÑиÑ
Ñелей лÑÑÑе иÑполÑзоваÑÑ CREATE TABLE AS.