CREATE MATERIALIZED VIEW
CREATE MATERIALIZED VIEW â ÑоздаÑÑ Ð¼Ð°ÑеÑиализованное пÑедÑÑавление
СинÑакÑиÑ
CREATE MATERIALIZED VIEW [ IF NOT EXISTS ]имÑ_ÑаблиÑÑ[ (имÑ_ÑÑолбÑа[, ...] ) ] [ WITH (паÑамеÑÑ_Ñ ÑанениÑ[=знаÑение] [, ... ] ) ] [ TABLESPACEÑабл_пÑоÑÑÑанÑÑво] ASзапÑоÑ[ WITH [ NO ] DATA ]
ÐпиÑание
CREATE MATERIALIZED VIEW опÑеделÑÐµÑ Ð¼Ð°ÑеÑиализованное пÑедÑÑавление запÑоÑа. ÐаданнÑй запÑÐ¾Ñ Ð²ÑполнÑеÑÑÑ Ð¸ наполнÑÐµÑ Ð¿ÑедÑÑавление в Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñзова ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ (еÑли ÑолÑко не Ñказано WITH NO DATA). ÐбновиÑÑ Ð¿ÑедÑÑавление позже можно, вÑполнив REFRESH MATERIALIZED VIEW.
Ðоманда CREATE MATERIALIZED VIEW подобна CREATE TABLE AS, за иÑклÑÑением Ñого, ÑÑо она Ð·Ð°Ð¿Ð¾Ð¼Ð¸Ð½Ð°ÐµÑ Ð·Ð°Ð¿ÑоÑ, поÑождаÑÑий пÑедÑÑавление, Ñак ÑÑо ÑÑо пÑедÑÑавление можно позже обновиÑÑ Ð¿Ð¾ ÑÑебованиÑ. ÐаÑеÑиализованнÑе пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑ
Ð¾Ð´Ð½Ñ Ñ ÑаблиÑами во многом, но не во вÑÑм; напÑимеÑ, не поддеÑживаÑÑÑÑ Ð²ÑеменнÑе маÑеÑиализованнÑе пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ авÑомаÑиÑеÑÐºÐ°Ñ Ð³ÐµÐ½ÐµÑаÑÐ¸Ñ OID.
ÐаÑамеÑÑÑ
IF NOT EXISTSÐе ÑÑиÑаÑÑ Ð¾Ñибкой, еÑли маÑеÑиализованное пÑедÑÑавление Ñ Ñаким именем Ñже ÑÑÑеÑÑвÑеÑ. Ð ÑÑом ÑлÑÑае бÑÐ´ÐµÑ Ð²Ñдано замеÑание. ÐамеÑÑÑе, ÑÑо Ð½ÐµÑ Ð½Ð¸ÐºÐ°ÐºÐ¾Ð¹ гаÑанÑии, ÑÑо ÑÑÑеÑÑвÑÑÑее маÑеÑиализованное пÑедÑÑавление как-Ñо ÑооÑноÑиÑÑÑ Ñ Ñем, коÑоÑое могло Ð±Ñ Ð±ÑÑÑ Ñоздано.
имÑ_ÑаблиÑÑÐÐ¼Ñ Ñоздаваемого маÑеÑиализованного пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ (возможно, дополненное ÑÑ ÐµÐ¼Ð¾Ð¹).
имÑ_ÑÑолбÑаÐÐ¼Ñ ÑÑолбÑа в Ñоздаваемом маÑеÑиализованном пÑедÑÑавлении. ÐÑли имена ÑÑолбÑов не Ð·Ð°Ð´Ð°Ð½Ñ Ñвно, они опÑеделÑÑÑÑÑ Ð¿Ð¾ именам ÑÑолбÑов ÑезÑлÑÑаÑа запÑоÑа.
WITH (паÑамеÑÑ_Ñ ÑанениÑ[=знаÑение] [, ... ] )ÐÑо пÑедложение задаÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе паÑамеÑÑÑ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñоздаваемого маÑеÑиализованного пÑедÑÑавлениÑ; подÑобнее о Ð½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ ÑзнаÑÑ Ð² ÐаÑамеÑÑÑ Ñ ÑанениÑ. ÐÑе паÑамеÑÑÑ, коÑоÑÑе поддеÑживаеÑ
CREATE TABLE, поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð¸CREATE MATERIALIZED VIEW, за иÑклÑÑениемOIDS. Ðа дополниÑелÑной инÑоÑмаÑией обÑаÑиÑеÑÑ Ðº CREATE TABLE.TABLESPACEÑабл_пÑоÑÑÑанÑÑвоÐдеÑÑ
Ñабл_пÑоÑÑÑанÑÑвоâ Ð¸Ð¼Ñ ÑаблиÑного пÑоÑÑÑанÑÑва, в коÑоÑом бÑÐ´ÐµÑ Ñоздано маÑеÑиализованное пÑедÑÑавление. ÐÑли оно не задано, вÑбиÑаеÑÑÑ default_tablespace.запÑоÑÐоманда SELECT, TABLE или VALUES. ÐÑа команда бÑÐ´ÐµÑ Ð²ÑполнÑÑÑÑÑ Ñ Ð¾Ð³ÑаниÑениÑми по безопаÑноÑÑи; в ÑаÑÑноÑÑи, бÑдÑÑ Ð·Ð°Ð¿ÑеÑÐµÐ½Ñ Ð²ÑÐ·Ð¾Ð²Ñ ÑÑнкÑий, коÑоÑÑе Ñами ÑоздаÑÑ Ð²ÑеменнÑе ÑаблиÑÑ.
WITH [ NO ] DATAÐÑо пÑедложение ÑказÑваеÑ, бÑÐ´ÐµÑ Ð»Ð¸ маÑеÑиализованное пÑедÑÑавление наполнÑÑÑÑÑ Ð² Ð¼Ð¾Ð¼ÐµÐ½Ñ ÑозданиÑ. ÐÑли маÑеÑиализованное пÑедÑÑавление не наполнÑеÑÑÑ, оно помеÑаеÑÑÑ ÐºÐ°Ðº неÑиÑаемое, Ñак ÑÑо к Ð½ÐµÐ¼Ñ Ð½ÐµÐ»ÑÐ·Ñ Ð±ÑÐ´ÐµÑ Ð¾Ð±ÑаÑаÑÑÑÑ Ð´Ð¾ вÑполнениÑ
REFRESH MATERIALIZED VIEW.
СовмеÑÑимоÑÑÑ
CREATE MATERIALIZED VIEW ÑвлÑеÑÑÑ ÑаÑÑиÑением Postgres Pro.