{"Entry":{"collection":"sql","key":"refresh-materialized-view","name":"REFRESH MATERIALIZED VIEW","aliases":["refreshmaterializedview"],"metadata":{"aliases":["refreshmaterializedview"],"changed_in":["9.4"],"changes":[{"from":"9.2","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":[],"removed":[]},"status":"added","synopsis":null,"to":"9.3"},{"from":"9.3","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters"],"removed":[]},"status":"changed","synopsis":{"added":["REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] name"],"removed":[]},"to":"9.4"},{"from":"9.6","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["notes"],"removed":[]},"status":"changed","synopsis":null,"to":"10"},{"from":"16","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters","notes"],"removed":[]},"status":"changed","synopsis":null,"to":"17"}],"content_hash":"ef58927c6f1609d2eba9d46a54a8a1213f43ab19ba7ef2ac04b56954510c02e7","editorial":{},"first_version":"9.3","group":"table","imported_at":"2026-09-30T17:43:35.939341+08:00","last_version":"20","name":"REFRESH MATERIALIZED VIEW","object":"MATERIALIZED VIEW","position":4,"present_in":["9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"purpose":"replace the contents of a materialized view","purpose_zh":"","related":["create-materialized-view","alter-materialized-view","drop-materialized-view"],"slug":"refresh-materialized-view","source_rev":"a709ab85","synopsis":"REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] name\n[ WITH [ NO ] DATA ]","verb":"REFRESH"}},"Definition":{"Collection":"sql","Key":"refresh-materialized-view","SourceDatabase":"center","Version":"18","SourceTable":"sqlcmd","SourceKey":"refresh-materialized-view","SourceRevision":"a709ab85","Facts":{"anchor":"SQL-REFRESHMATERIALIZEDVIEW","file":"sql-refreshmaterializedview.html","lang":"en","name":"REFRESH MATERIALIZED VIEW","purpose":"replace the contents of a materialized view","purpose_zh":"","related":["create-materialized-view","alter-materialized-view","drop-materialized-view"],"sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eREFRESH MATERIALIZED VIEW\u003c/code\u003e completely replaces the contents of a materialized view. To execute this command you must have the \u003ccode class=\"literal\"\u003eMAINTAIN\u003c/code\u003e privilege on the materialized view. The old contents are discarded. If \u003ccode class=\"literal\"\u003eWITH DATA\u003c/code\u003e is specified (or defaults) the backing query is executed to provide the new data, and the materialized view is left in a scannable state. If \u003ccode class=\"literal\"\u003eWITH NO DATA\u003c/code\u003e is specified no new data is generated and the materialized view is left in an unscannable state.\u003c/p\u003e\u003cp\u003e\u003ccode class=\"literal\"\u003eCONCURRENTLY\u003c/code\u003e and \u003ccode class=\"literal\"\u003eWITH NO DATA\u003c/code\u003e may not be specified together.\u003c/p\u003e","key":"description","title":"Description"},{"html":"\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eCONCURRENTLY\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eRefresh the materialized view without locking out concurrent selects on the materialized view. Without this option a refresh which affects a lot of rows will tend to use fewer resources and complete more quickly, but could block other connections which are trying to read from the materialized view. This option may be faster in cases where a small number of rows are affected.\u003c/p\u003e\u003cp\u003eThis option is only allowed if there is at least one \u003ccode class=\"literal\"\u003eUNIQUE\u003c/code\u003e index on the materialized view which uses only column names and includes all rows; that is, it must not be an expression index or include a \u003ccode class=\"literal\"\u003eWHERE\u003c/code\u003e clause.\u003c/p\u003e\u003cp\u003eThis option can only be used when the materialized view is already populated.\u003c/p\u003e\u003cp\u003eEven with this option only one \u003ccode class=\"literal\"\u003eREFRESH\u003c/code\u003e at a time may run against any one materialized view.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name (optionally schema-qualified) of the materialized view to refresh.\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","key":"parameters","title":"Parameters"},{"html":"\u003cp\u003eIf there is an \u003ccode class=\"literal\"\u003eORDER BY\u003c/code\u003e clause in the materialized view's defining query, the original contents of the materialized view will be ordered that way; but \u003ccode class=\"command\"\u003eREFRESH MATERIALIZED VIEW\u003c/code\u003e does not guarantee to preserve that ordering.\u003c/p\u003e\u003cp\u003eWhile \u003ccode class=\"command\"\u003eREFRESH MATERIALIZED VIEW\u003c/code\u003e is running, the \u003ca href=\"/docs/18/runtime-config-client.html#GUC-SEARCH-PATH\"\u003esearch_path\u003c/a\u003e is temporarily changed to \u003ccode class=\"literal\"\u003epg_catalog, pg_temp\u003c/code\u003e.\u003c/p\u003e","key":"notes","title":"Notes"},{"html":"\u003cp\u003eThis command will replace the contents of the materialized view called \u003ccode class=\"literal\"\u003eorder_summary\u003c/code\u003e using the query from the materialized view's definition, and leave it in a scannable state:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eREFRESH MATERIALIZED VIEW order_summary;\n\u003c/pre\u003e\u003cp\u003eThis command will free storage associated with the materialized view \u003ccode class=\"literal\"\u003eannual_statistics_basis\u003c/code\u003e and leave it in an unscannable state:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eREFRESH MATERIALIZED VIEW annual_statistics_basis WITH NO DATA;\n\u003c/pre\u003e","key":"examples","title":"Examples"},{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eREFRESH MATERIALIZED VIEW\u003c/code\u003e is a \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e extension.\u003c/p\u003e","key":"compatibility","title":"Compatibility"},{"html":"\u003cspan class=\"simplelist\"\u003e\u003ca href=\"/wiki/sql/create-materialized-view/?v=18\" title=\"CREATE MATERIALIZED VIEW\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE MATERIALIZED VIEW\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/alter-materialized-view/?v=18\" title=\"ALTER MATERIALIZED VIEW\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER MATERIALIZED VIEW\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/drop-materialized-view/?v=18\" title=\"DROP MATERIALIZED VIEW\"\u003e\u003cspan class=\"refentrytitle\"\u003eDROP MATERIALIZED VIEW\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e","key":"see_also","title":"See Also"}],"sections_same_as":"","slug":"18","synopsis_html":"REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\n    [ WITH [ NO ] DATA ]","synopsis_text":"REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] name\n[ WITH [ NO ] DATA ]"},"ManualEvidence":{},"MeasuredEvidence":{}},"Text":{"Collection":"sql","Key":"refresh-materialized-view","SourceDatabase":"pgweb","Version":"18","Locale":"zh-Hans","Title":"REFRESH MATERIALIZED VIEW","Summary":"替换物化视图的内容","BodyHTML":"\u003cpre\u003eREFRESH MATERIALIZED VIEW [ CONCURRENTLY ] name\n[ WITH [ NO ] DATA ]\u003c/pre\u003e\u003csection\u003e\u003ch2\u003e描述\u003c/h2\u003e\u003cp\u003e\u003ccode\u003eREFRESH MATERIALIZED VIEW\u003c/code\u003e会完全替换物化视图的内容。要执行此命令，必须拥有该物化视图的\u003ccode\u003eMAINTAIN\u003c/code\u003e权限。旧内容会被丢弃。如果指定了\u003ccode\u003eWITH DATA\u003c/code\u003e（或者默认如此），则会执行其底层查询以生成新数据，并使物化视图处于可扫描状态。如果指定了\u003ccode\u003eWITH NO DATA\u003c/code\u003e，则不会生成新数据，并使物化视图处于不可扫描状态。\u003c/p\u003e\u003cp\u003e不得同时指定\u003ccode\u003eCONCURRENTLY\u003c/code\u003e和\u003ccode\u003eWITH NO DATA\u003c/code\u003e。\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e参数\u003c/h2\u003e\u003cdiv\u003e\u003cdl\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eCONCURRENTLY\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e刷新物化视图时，不会阻塞针对该物化视图的并发查询。如果不使用此选项，一次影响很多行的刷新通常会占用更少的资源并且更快完成，但可能会阻塞其他试图从该物化视图读取的连接。在只影响少量行的情况下，此选项可能更快。\u003c/p\u003e\u003cp\u003e只有当该物化视图上至少有一个仅使用列名且涵盖所有行的 \u003ccode\u003eUNIQUE\u003c/code\u003e索引时，才允许使用此选项；也就是说，它不能是表达式索引，也不能带有\u003ccode\u003eWHERE\u003c/code\u003e子句。\u003c/p\u003e\u003cp\u003e只有在该物化视图已经填充数据时，才能使用此选项。\u003c/p\u003e\u003cp\u003e即使使用了此选项，对于任意一个物化视图，一次也只能运行一个 \u003ccode\u003eREFRESH\u003c/code\u003e。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e要刷新的物化视图名称（可以带模式限定）。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e注解\u003c/h2\u003e\u003cp\u003e如果物化视图的定义查询中带有\u003ccode\u003eORDER BY\u003c/code\u003e子句，则该物化视图的原始内容会按该顺序排列；但\u003ccode\u003eREFRESH MATERIALIZED VIEW\u003c/code\u003e并不保证保留这种顺序。\u003c/p\u003e\u003cp\u003e在\u003ccode\u003eREFRESH MATERIALIZED VIEW\u003c/code\u003e运行期间，\u003ca href=\"/docs/18/runtime-config-client.html#GUC-SEARCH-PATH\" rel=\"nofollow\"\u003esearch_path\u003c/a\u003e会被临时改为\u003ccode\u003epg_catalog, pg_temp\u003c/code\u003e。\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e示例\u003c/h2\u003e\u003cp\u003e这个命令会使用物化视图\u003ccode\u003eorder_summary\u003c/code\u003e定义中的查询来替换其内容，并使其处于可扫描状态：\u003c/p\u003e\u003cpre\u003eREFRESH MATERIALIZED VIEW order_summary;\n\u003c/pre\u003e\u003cp\u003e这个命令会释放与物化视图\u003ccode\u003eannual_statistics_basis\u003c/code\u003e相关的存储，并使其处于不可扫描状态：\u003c/p\u003e\u003cpre\u003eREFRESH MATERIALIZED VIEW annual_statistics_basis WITH NO DATA;\n\u003c/pre\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e兼容性\u003c/h2\u003e\u003cp\u003e\u003ccode\u003eREFRESH MATERIALIZED VIEW\u003c/code\u003e是 \u003cspan\u003ePostgreSQL\u003c/span\u003e的扩展。\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e另见\u003c/h2\u003e\u003cspan\u003e\u003ca href=\"/wiki/sql/create-materialized-view/?v=18\" title=\"CREATE MATERIALIZED VIEW\" rel=\"nofollow\"\u003e\u003cspan\u003eCREATE MATERIALIZED VIEW\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/alter-materialized-view/?v=18\" title=\"ALTER MATERIALIZED VIEW\" rel=\"nofollow\"\u003e\u003cspan\u003eALTER MATERIALIZED VIEW\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/drop-materialized-view/?v=18\" title=\"DROP MATERIALIZED VIEW\" rel=\"nofollow\"\u003e\u003cspan\u003eDROP MATERIALIZED VIEW\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e\u003c/section\u003e","SourceRevision":"1b5ca64c","ContentHash":"14d1c49c3bb30c140e774c49b50bc896d39521cff3839c97b36f01e545ea4912","Payload":{"purpose_zh":"替换物化视图的内容","sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eREFRESH MATERIALIZED VIEW\u003c/code\u003e会完全替换物化视图的内容。要执行此命令，必须拥有该物化视图的\u003ccode class=\"literal\"\u003eMAINTAIN\u003c/code\u003e权限。旧内容会被丢弃。如果指定了\u003ccode class=\"literal\"\u003eWITH DATA\u003c/code\u003e（或者默认如此），则会执行其底层查询以生成新数据，并使物化视图处于可扫描状态。如果指定了\u003ccode class=\"literal\"\u003eWITH NO DATA\u003c/code\u003e，则不会生成新数据，并使物化视图处于不可扫描状态。\u003c/p\u003e\u003cp\u003e不得同时指定\u003ccode class=\"literal\"\u003eCONCURRENTLY\u003c/code\u003e和\u003ccode class=\"literal\"\u003eWITH NO DATA\u003c/code\u003e。\u003c/p\u003e","key":"description","title":"描述"},{"html":"\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eCONCURRENTLY\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e刷新物化视图时，不会阻塞针对该物化视图的并发查询。如果不使用此选项，一次影响很多行的刷新通常会占用更少的资源并且更快完成，但可能会阻塞其他试图从该物化视图读取的连接。在只影响少量行的情况下，此选项可能更快。\u003c/p\u003e\u003cp\u003e只有当该物化视图上至少有一个仅使用列名且涵盖所有行的 \u003ccode class=\"literal\"\u003eUNIQUE\u003c/code\u003e索引时，才允许使用此选项；也就是说，它不能是表达式索引，也不能带有\u003ccode class=\"literal\"\u003eWHERE\u003c/code\u003e子句。\u003c/p\u003e\u003cp\u003e只有在该物化视图已经填充数据时，才能使用此选项。\u003c/p\u003e\u003cp\u003e即使使用了此选项，对于任意一个物化视图，一次也只能运行一个 \u003ccode class=\"literal\"\u003eREFRESH\u003c/code\u003e。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e要刷新的物化视图名称（可以带模式限定）。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","key":"parameters","title":"参数"},{"html":"\u003cp\u003e如果物化视图的定义查询中带有\u003ccode class=\"literal\"\u003eORDER BY\u003c/code\u003e子句，则该物化视图的原始内容会按该顺序排列；但\u003ccode class=\"command\"\u003eREFRESH MATERIALIZED VIEW\u003c/code\u003e并不保证保留这种顺序。\u003c/p\u003e\u003cp\u003e在\u003ccode class=\"command\"\u003eREFRESH MATERIALIZED VIEW\u003c/code\u003e运行期间，\u003ca href=\"/docs/18/runtime-config-client.html#GUC-SEARCH-PATH\"\u003esearch_path\u003c/a\u003e会被临时改为\u003ccode class=\"literal\"\u003epg_catalog, pg_temp\u003c/code\u003e。\u003c/p\u003e","key":"notes","title":"注解"},{"html":"\u003cp\u003e这个命令会使用物化视图\u003ccode class=\"literal\"\u003eorder_summary\u003c/code\u003e定义中的查询来替换其内容，并使其处于可扫描状态：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eREFRESH MATERIALIZED VIEW order_summary;\n\u003c/pre\u003e\u003cp\u003e这个命令会释放与物化视图\u003ccode class=\"literal\"\u003eannual_statistics_basis\u003c/code\u003e相关的存储，并使其处于不可扫描状态：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eREFRESH MATERIALIZED VIEW annual_statistics_basis WITH NO DATA;\n\u003c/pre\u003e","key":"examples","title":"示例"},{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eREFRESH MATERIALIZED VIEW\u003c/code\u003e是 \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e的扩展。\u003c/p\u003e","key":"compatibility","title":"兼容性"},{"html":"\u003cspan class=\"simplelist\"\u003e\u003ca href=\"/wiki/sql/create-materialized-view/?v=18\" title=\"CREATE MATERIALIZED VIEW\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE MATERIALIZED VIEW\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/alter-materialized-view/?v=18\" title=\"ALTER MATERIALIZED VIEW\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER MATERIALIZED VIEW\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/drop-materialized-view/?v=18\" title=\"DROP MATERIALIZED VIEW\"\u003e\u003cspan class=\"refentrytitle\"\u003eDROP MATERIALIZED VIEW\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e","key":"see_also","title":"另见"}],"sections_same_as":"","synopsis_html":"REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\n    [ WITH [ NO ] DATA ]","synopsis_text":"REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] name\n[ WITH [ NO ] DATA ]"}},"RequestedLocale":"zh-Hans","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
