Documentation PostgreSQL 14.22 » Référence » Commandes SQL » CREATE MATERIALIZED VIEW

Précédent | Niveau supérieur | Suivant
CREATE LANGUAGE | Sommaire | CREATE OPERATOR

## CREATE MATERIALIZED VIEW

CREATE MATERIALIZED VIEW — définir une nouvelle vue matérialisée

## Synopsis

    CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] nom_table
        [ (nom_colonne [, ...] ) ]
        [ USING méthode ]
        [ WITH ( paramètre_stockage [= valeur] [, ... ] ) ]
        [ TABLESPACE nom_tablespace ]
        AS requête
        [ WITH [ NO ] DATA ]

## Description

`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.

`CREATE MATERIALIZED VIEW` nécessite le droit `CREATE` sur le schéma utilisé par la vue matérialisée.

## Paramètres

`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.

`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 supportés pour `CREATE TABLE` sont aussi supporté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.

`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é.

## Compatibilité

`CREATE MATERIALIZED VIEW` est une extension PostgreSQL.

## Voir aussi

ALTER MATERIALIZED VIEW, CREATE TABLE AS, CREATE VIEW, DROP MATERIALIZED VIEW, REFRESH MATERIALIZED VIEW