CREATE MATERIALIZED VIEW — définir une nouvelle vue matérialisée
CREATE MATERIALIZED VIEW [ IF NOT EXISTS ]nom_table
[ (nom_colonne
[, ...] ) ] [ 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 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 ou avec génération automatique d'OID.
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.
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.
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 pour plus
d'informations. Tous les paramètres supportés pour CREATE
TABLE
sont aussi supportés supported par CREATE
MATERIALIZED VIEW
à l'exception d'OIDS
.
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.
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.