REFRESH MATERIALIZED VIEW — remplacer le contenu d'une vue matérialisée
REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] nom
[ WITH [ NO ] DATA ]
REFRESH MATERIALIZED VIEW
remplace le contenu entier d'une
vue matérialisée. Pour exécuter cette commande, vous devez avoir le droit
MAINTAIN
sur
la vue matérialisée. L'ancien contenu est supprimé. Si WITH
DATA
est ajouté, la requête de la vue est exécutée pour fournir les
nouvelles données et la vue matérialisée est laissé dans un état parcourable.
Si WITH NO DATA
est indiqué, aucune nouvelle donnée n'est
générée et la vue matérialisée est laissée dans un état non parcourable.
CONCURRENTLY
et WITH NO DATA
ne peuvent
pas être utilisées ensemble.
CONCURRENTLY
Rafraichit les données de la vue matérialisée sans bloquer les lectures de la vue matérialisée. Sans cette option, un rafraichissement des données qui affecte un grand nombre de lignes aura tendance à utiliser moins de ressources et à se terminer plus rapidement, mais pourrait bloquer les autres connexions qui essaieraient de lire la vue matérialisée. Cette option pourrait être plus rapide dans les cas où le nombre de lignes mises à jour est plus petit.
Cette option est seulement autorisée s'il existe au moins un index
UNIQUE
sur la vue matérialisée utilisant uniquement
les noms de colonnes et incluant toutes les lignes ; autrement dit,
cela ne peut pas être un index fonctionnel ou partiel (incluant une clause
WHERE
).
Cette option peut seulement être utilisée quand la vue matérialisée est déjà peuplée.
Même avec cette option, seul un REFRESH
peut être exécuté
à un instant t sur une vue matérialisé.
nom
Ne renvoie pas d'erreur si la vue matérialisée n'existe pas. Un message d'avertissement est renvoyé dans ce cas.
S'il existe une clause ORDER BY
dans la requête de
définition de la vue, le contenu original de la vue matérialisée sera trié de
cette façon. Cependant, REFRESH MATERIALIZED VIEW
ne
garantit pas de préserver cet ordre.
Quand REFRESH MATERIALIZED VIEW
est en cours
d'exécution, le paramètre search_path est modifié temporairement en
pg_catalog, pg_temp
.
Cette commande remplacera le contenu de la vue matérialisée
resume_commandes
en utilisant la requête indiquée dans
la définition de la vue matérialisée et en la laissant dans un état
parcourable :
REFRESH MATERIALIZED VIEW resume_commandes;
Cette commande libèrera le stockage associé avec la vue matérialisée
stats_base_annuel
et la laissera dans un état non
parcourable :
REFRESH MATERIALIZED VIEW stats_base_annuel WITH NO DATA;
REFRESH MATERIALIZED VIEW
est une extension
PostgreSQL.