summaryrefslogtreecommitdiffstats
path: root/doc/src/sgml/man7/REFRESH_MATERIALIZED_VIEW.7
blob: cb0cf0d8e7552f469222dafb1b1bd628caeeab64 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
'\" t
.\"     Title: REFRESH MATERIALIZED VIEW
.\"    Author: The PostgreSQL Global Development Group
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\"      Date: 2023
.\"    Manual: PostgreSQL 15.5 Documentation
.\"    Source: PostgreSQL 15.5
.\"  Language: English
.\"
.TH "REFRESH MATERIALIZED VIEW" "7" "2023" "PostgreSQL 15.5" "PostgreSQL 15.5 Documentation"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
REFRESH_MATERIALIZED_VIEW \- replace the contents of a materialized view
.SH "SYNOPSIS"
.sp
.nf
REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] \fIname\fR
    [ WITH [ NO ] DATA ]
.fi
.SH "DESCRIPTION"
.PP
\fBREFRESH MATERIALIZED VIEW\fR
completely replaces the contents of a materialized view\&. To execute this command you must be the owner of the materialized view\&. The old contents are discarded\&. If
WITH DATA
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
WITH NO DATA
is specified no new data is generated and the materialized view is left in an unscannable state\&.
.PP
CONCURRENTLY
and
WITH NO DATA
may not be specified together\&.
.SH "PARAMETERS"
.PP
CONCURRENTLY
.RS 4
Refresh 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\&.
.sp
This option is only allowed if there is at least one
UNIQUE
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
WHERE
clause\&.
.sp
This option may not be used when the materialized view is not already populated\&.
.sp
Even with this option only one
REFRESH
at a time may run against any one materialized view\&.
.RE
.PP
\fIname\fR
.RS 4
The name (optionally schema\-qualified) of the materialized view to refresh\&.
.RE
.SH "NOTES"
.PP
If there is an
ORDER BY
clause in the materialized view\*(Aqs defining query, the original contents of the materialized view will be ordered that way; but
\fBREFRESH MATERIALIZED VIEW\fR
does not guarantee to preserve that ordering\&.
.SH "EXAMPLES"
.PP
This command will replace the contents of the materialized view called
order_summary
using the query from the materialized view\*(Aqs definition, and leave it in a scannable state:
.sp
.if n \{\
.RS 4
.\}
.nf
REFRESH MATERIALIZED VIEW order_summary;
.fi
.if n \{\
.RE
.\}
.PP
This command will free storage associated with the materialized view
annual_statistics_basis
and leave it in an unscannable state:
.sp
.if n \{\
.RS 4
.\}
.nf
REFRESH MATERIALIZED VIEW annual_statistics_basis WITH NO DATA;
.fi
.if n \{\
.RE
.\}
.SH "COMPATIBILITY"
.PP
\fBREFRESH MATERIALIZED VIEW\fR
is a
PostgreSQL
extension\&.
.SH "SEE ALSO"
CREATE MATERIALIZED VIEW (\fBCREATE_MATERIALIZED_VIEW\fR(7)), ALTER MATERIALIZED VIEW (\fBALTER_MATERIALIZED_VIEW\fR(7)), DROP MATERIALIZED VIEW (\fBDROP_MATERIALIZED_VIEW\fR(7))