Documentation PostgreSQL 14.22 » Référence » Commandes SQL » ALTER VIEW

Précédent | Niveau supérieur | Suivant
ALTER USER MAPPING | Sommaire | ANALYZE

## ALTER VIEW

ALTER VIEW — modifier la définition d'une vue

## Synopsis

    ALTER VIEW [ IF EXISTS ] nom ALTER [ COLUMN ] nom_colonne SET DEFAULT expression
    ALTER VIEW [ IF EXISTS ] nom ALTER [ COLUMN ] nom_colonne DROP DEFAULT
    ALTER VIEW [ IF EXISTS ] nom OWNER TO { nouveau_propriétaire | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
    ALTER VIEW [ IF EXISTS ] name RENAME [ COLUMN ] nom_colonne TO nouveau_nom_colonne
    ALTER VIEW [ IF EXISTS ] nom RENAME TO nouveau_nom
    ALTER VIEW [ IF EXISTS ] nom SET SCHEMA nouveau_schéma
    ALTER VIEW [ IF EXISTS ] nom SET ( nom_option [= valeur_option] [, ... ] )
    ALTER VIEW [ IF EXISTS ] nom RESET ( nom_option [, ... ] )

## Description

`ALTER VIEW` modifie différentes propriétés d'une vue. Si vous voulez modifier la requête définissant la vue, utilisez `CREATE OR REPLACE VIEW`.)

Vous devez être le propriétaire de la vue pour utiliser `ALTER VIEW`. Pour modifier le schéma d'une vue, vous devez aussi avoir le droit `CREATE` sur le nouveau schéma. Pour modifier le propriétaire, vous devez aussi être un membre direct ou indirect de nouveau rôle propriétaire, et ce rôle doit avoir le droit `CREATE` sur le schéma de la vue. Ces restrictions permettent de s'assurer que le changement de propriétaire ne fera pas plus que ce que vous pourriez faire en supprimant et en recréant la vue. Néanmoins, un super-utilisateur peut changer le propriétaire de n'importe quelle vue.

## Paramètres

`nom`

  Le nom de la vue (pouvant être qualifié du schéma).

`nom_colonne`

  Nom de la colonne existante.

`nouveau_nom_colonne`

  NOuveau nom de la colonne existante.

`IF EXISTS`

  Ne retourne par d'erreur si la vue n'existe pas. Seul un message d'avertissement est retourné dans ce cas.

`SET`/`DROP DEFAULT`

  Ces formes ajoutent ou suppriment la valeur par défaut pour une colonne. La valeur par défaut d'une colonne de la vue est substituée dans toute commande `INSERT` pi `UPDATE` dont la vue est la cible, avant d'appliquer les règles et triggers de la vue. Le comportement par défaut de la vue prendra précédence sur toute valeur par défaut à partir des relations sous-jacentes.

`nouveau_propriétaire`

  Nom utilisateur du nouveau propriétaire de la vue.

`nouveau_nom`

  Nouveau nom de la vue.

`nouveau_schéma`

  Nouveau schéma de la vue.

`SET ( `nom_option` [= `valeur_option`] [, ... ] )`
`RESET ( `nom_option` [, ... ] )`

  Configure ou annule la configuration d'une option d'une vue. Les options actuellement supportées sont :

  `check_option` (`enum`)

    Modifie l'option de vérification d'une value. Les valeurs autorisées sont `local` et `cascaded`.

  `security_barrier` (`boolean`)

    Modifie la propriété security_barrier de la vue. Il s'agit d'une valeur booléenne, `true` ou `false`.

## Notes

Pour des raisons historiques, `ALTER TABLE` peut aussi être utilisé avec des vues ; mais seules les variantes de `ALTER TABLE` qui sont acceptées avec les vues sont équivalentes à celles affichées ci-dessus.

## Exemples

Pour renommer la vue `foo` en `bar` :

    ALTER VIEW foo RENAME TO bar;

Pour attacher une valeur par défaut à une colonne dans une vue modifiable :

    CREATE TABLE table_base (id int, ts timestamptz);
    CREATE VIEW une_view AS SELECT * FROM table_base;
    ALTER VIEW une_view ALTER COLUMN ts SET DEFAULT now();
    INSERT INTO table_base(id) VALUES(1);  -- ts recevra une valeur NULL
    INSERT INTO une_view(id) VALUES(2);  -- ts recevra l'heure courante

## Compatibilité

`ALTER VIEW` est une extensions PostgreSQL du standard SQL.

## Voir aussi

CREATE VIEW, DROP VIEW