CREATE MATERIALIZED VIEW — définir une nouvelle vue matérialisée
CREATE MATERIALIZED VIEW [ IF NOT EXISTS ]nom_table
[ (nom_colonne
[, ...] ) ] [ USINGméthode
] [ WITH (paramètre_stockage
[=valeur
] [, ... ] ) ] [ TABLESPACEnom_tablespace
] ASrequête
[ WITH [ NO ] DATA ]
CREATE MATERIALIZED VIEW
définit une vue matérialisée à
partir d'une requête. La requête est exécutée et utilisée pour peupler la
vue à l'exécution de la commande (sauf si la clause WITH NO DATA
est utilisé) et peut être rafraichi plus tard en utilisant REFRESH
MATERIALIZED VIEW
.
CREATE MATERIALIZED VIEW
est similaire à
CREATE TABLE AS
, sauf qu'il se rappelle aussi de la
requête utilisée pour initialiser la vue pour qu'elle puisse être
rafraichie à la demande. Une vue matérialisée a plusieurs propriétés
communes avec une table mais il n'y a pas de support pour les vues
matérialisées temporaires.
CREATE MATERIALIZED VIEW
nécessite le droit
CREATE
sur le schéma utilisé par la vue matérialisée.
IF NOT EXISTS
Ne renvoie pas une erreur si une vue matérialisée portant le même nom existe déjà. Un message d'avertissement est renvoyé dans ce cas. Notez qu'il n'y a aucune garantie que la vue matérialisée existante ressemble à celle qui aurait dû être créée.
nom_table
Le nom de la vue matérialisée (potentiellement qualifié du schéma) à créer. Le nom doit être distinct du nom des autres relations (table, séquence, index, vue, vue matérialisée, ou table externe) du même schéma.
nom_colonne
Le nom d'une colonne dans la nouvelle vue matérialisée. Si les noms des colonnes ne sont pas fournis, ils sont pris des noms de colonne en sortie de la requête.
USING méthode
Cette clause optionnelle indique la méthode d'accès à la table à utiliser
pour stocker le contenu de la nouvelle vue matérialisée ; la méthode doit être
une méthode d'accès de type TABLE
. Voir Chapitre 61 pour plus d'informations. Si cette option n'est pas spécifiée,
la méthode d'accès par défaut à la table est choisie pour la nouvelle vue
matérialisée. Voir default_table_access_method
pour plus d'informations.
WITH ( paramètre_stockage
[= valeur
] [, ... ] )
Cette clause indique les paramètres de stockage optionnels pour la nouvelle
vue matérialisée ; voir Paramètres de stockage
dans la documentation de CREATE TABLE pour plus
d'informations. Tous les paramètres acceptés par CREATE
TABLE
sont aussi acceptés par CREATE
MATERIALIZED VIEW
.
Voir CREATE TABLE pour plus d'informations.
TABLESPACE nom_tablespace
nom_tablespace
est le nom du
tablespace dans lequel la nouvelle vue matérialisée sera créée. S'il
n'est pas indiqué, default_tablespace est consulté.
query
Une commande SELECT
,
TABLE
,
ou VALUES
.
Cette requête sera exécutée dans une opération restreinte au niveau
sécurité. En particulier, les appels aux fonctions qui elles-même
créent des tables temporaires échoueront. De plus, pendant que la requête
est en cours d'exécution, le search_path est modifié
temporairement en pg_catalog, pg_temp
.
WITH [ NO ] DATA
Cette clause indique si la vue matérialisée doit être peuplée ou non lors
de sa création. Si elle ne l'est pas, la vue matérialisée sera marquée
comme non parcourable et ne pourra pas être lu jusqu'à ce que
REFRESH MATERIALIZED VIEW
soit utilisé.
CREATE MATERIALIZED VIEW
est une extension
PostgreSQL.