Section courante

A propos

Section administrative du site

CREATE VIEW

Crée une vue
PostgreSQL

Syntaxe

CREATE [ ou REPLACE ] [ TEMP | TEMPORARY ] [ RECURSIVE ] VIEW name [ ( column_name [, ...] ) ] [ WITH ( view_option_name [= view_option_value] [, ... ] ) ] AS query [ WITH [ CASCADED | LOCAL ] CHECK OPTION ]

Paramètres

Nom Description
TEMP Ce paramètre permet d'indiquer la création d'une vue temporaire. Les vues temporaires sont automatiquement supprimées à la fin de la session en cours. Les relations permanentes existantes portant le même nom ne sont pas visibles pour la session en cours tant que la vue temporaire existe, à moins qu'elles ne soient référencées avec des noms qualifiés de schéma. Si l'une des tables référencées par la vue est temporaire, la vue est créée en tant que vue temporaire (que TEMP soit spécifié ou non).
TEMPORARY Ce paramètre permet d'indiquer la création d'une vue temporaire. Les vues temporaires sont automatiquement supprimées à la fin de la session en cours. Les relations permanentes existantes portant le même nom ne sont pas visibles pour la session en cours tant que la vue temporaire existe, à moins qu'elles ne soient référencées avec des noms qualifiés de schéma. Si l'une des tables référencées par la vue est temporaire, la vue est créée en tant que vue temporaire (que TEMPORARY soit spécifié ou non).
RECURSIVE Ce paramètre permet de créer une vue récursive. La syntaxe est la suivante :

CREATE RECURSIVE VIEW [ schema . ] view_name (column_names) AS SELECT ...;


est équivalent à
CREATE VIEW [ schema . ] view_name AS WITH RECURSIVE view_name (column_names) AS (SELECT ...) SELECT column_names FROM view_name;


Une liste de noms de colonnes de vue doit être spécifiée pour une vue récursive.
name Ce paramètre permet d'indiquer le nom (éventuellement qualifié par le schéma) d'une vue à créer.
column_name Ce paramètre permet d'indiquer une liste facultative de noms à utiliser pour les colonnes de la vue. S'il n'est pas renseigné, les noms de colonnes sont déduits de la requête.
WITH ( view_option_name [= view_option_value] [, ... ] ) Ce paramètre permet d'indiquer des paramètres facultatifs pour une vue ; les paramètres suivants sont pris en charge :

check_option (string)


Ce paramètre peut être local ou en cascade, et équivaut à spécifier WITH [ CASCADED | LOCAL ] CHECK OPTION (voir ci-dessous). Cette option peut être modifiée sur les vues existantes en utilisant ALTER VIEW.

security_barrier (boolean)


Cela doit être utilisé si la vue est destinée à fournir une sécurité au niveau des lignes.
query Ce paramètre permet d'indiquer une commande SELECT ou VALUES fournissant les colonnes et les lignes de la vue.
WITH [ CASCADED | LOCAL ] CHECK OPTION Ce paramètre permet de contrôler le comportement des vues pouvant être mises à jour automatiquement. Lorsque cette option est spécifiée, les commandes INSERT et UPDATE sur la vue seront vérifiées pour s'assurer que les nouvelles lignes satisfont à la condition de définition de la vue (c'est-à-dire que les nouvelles lignes sont vérifiées pour s'assurer qu'elles sont visibles à travers la vue). S'ils ne le sont pas, la mise à jour sera rejetée. Si l'option CHECK OPTION n'est pas spécifiée, les commandes INSERT et UPDATE sur la vue sont autorisées à créer des lignes n'étant pas visibles à travers la vue. Les options de vérification suivantes sont prises en charge :
Option Description
LOCAL Cette option permet d'indiquer que les nouvelles lignes ne sont vérifiées que par rapport aux conditions définies directement dans la vue elle-même. Les conditions définies sur les vues de base sous-jacentes ne sont pas vérifiées (à moins qu'elles ne spécifient également l'OPTION CHECK).
CASCADED Cette option permet d'indiquer que les nouvelles lignes sont vérifiées par rapport aux conditions de la vue et de toutes les vues de base sous-jacentes. Si l'option CHECK OPTION est spécifiée et que ni LOCAL ni CASCADED ne sont spécifiés, alors CASCADED est supposé.
L'OPTION CHECK ne peut pas être utilisée avec les vues RECURSIVES. Notez que l'OPTION CHECK n'est prise en charge que sur les vues pouvant être mises à jour automatiquement et n'ayant pas de déclencheurs INSTEAD OF ou de règles INSTEAD. Si une vue automatiquement actualisable est définie au-dessus d'une vue de base ayant des déclencheurs INSTEAD OF, alors l'OPTION LOCAL CHECK peut être utilisée pour vérifier les conditions sur la vue automatiquement actualisable, mais les conditions sur la vue de base avec les déclencheurs INSTEAD OF ne seront pas être cochée (une option de vérification en cascade ne sera pas en cascade vers une vue pouvant être mise à jour par un déclencheur, et toutes les options de vérification définies directement sur une vue pouvant être mise à jour par un déclencheur seront ignorées). Si la vue ou l'une de ses relations de base a une règle INSTEAD entraînant la réécriture de la commande INSERT ou UPDATE, alors toutes les options de vérification seront ignorées dans la requête réécrite, y compris toutes les vérifications des vues automatiquement mises à jour définies au-dessus de la relation avec la règle INSTEAD.

Description

Cette instruction permet de définir une nouvelle vue.



Dernière mise à jour : Jeudi, le 14 Octobre 2021