ALTER VIEW — cambiar la definición de una vista
ALTER VIEW [ IF EXISTS ]nameALTER [ COLUMN ]column_nameSET DEFAULTexpressionALTER VIEW [ IF EXISTS ]nameALTER [ COLUMN ]column_nameDROP DEFAULT ALTER VIEW [ IF EXISTS ]nameOWNER TO {new_owner| CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER VIEW [ IF EXISTS ]nameRENAME [ COLUMN ]column_nameTOnew_column_nameALTER VIEW [ IF EXISTS ]nameRENAME TOnew_nameALTER VIEW [ IF EXISTS ]nameSET SCHEMAnew_schemaALTER VIEW [ IF EXISTS ]nameSET (view_option_name[=view_option_value] [, ... ] ) ALTER VIEW [ IF EXISTS ]nameRESET (view_option_name[, ... ] )
ALTER VIEW cambia varias propiedades auxiliares
de una vista. (Si deseas modificar la consulta que define la vista,
usa CREATE OR REPLACE VIEW).
Debes ser el propietario de la vista para usar ALTER VIEW.
Para cambiar el esquema de una vista, también debes tener el privilegio CREATE
en el nuevo esquema.
Para cambiar el propietario, debes ser capaz de hacer SET ROLE al
nuevo rol propietario, y ese rol debe tener el privilegio CREATE
en el esquema de la vista.
(Estas restricciones garantizan que cambiar el propietario no permita hacer
nada que no pudieras hacer eliminando y volviendo a crear la vista.
Sin embargo, un superusuario puede cambiar la propiedad de cualquier vista de todos modos).
nameEl nombre (opcionalmente calificado por esquema) de una vista existente.
column_nameEl nombre de una columna existente.
new_column_nameEl nuevo nombre para una columna existente.
IF EXISTSNo arrojar un error si la vista no existe. En este caso se emite un aviso (notice) en su lugar.
SET/DROP DEFAULT
Estas formas establecen o eliminan el valor predeterminado para una columna.
El valor predeterminado de una columna de la vista se sustituye en cualquier
comando INSERT o UPDATE cuyo objetivo sea la
vista, antes de aplicar cualquier regla o disparador (trigger) para la vista. El
valor predeterminado de la vista tendrá por lo tanto prioridad sobre cualquier
valor predeterminado de las relaciones subyacentes.
new_ownerEl nombre de usuario del nuevo propietario de la vista.
new_nameEl nuevo nombre para la vista.
new_schemaEl nuevo esquema para la vista.
SET ( view_option_name [= view_option_value] [, ... ] )RESET ( view_option_name [, ... ] )Establece o restablece una opción de la vista. Las opciones admitidas actualmente son:
check_option (enum)
Cambia la opción de verificación (check option) de la vista. El valor debe
ser local o cascaded.
security_barrier (boolean)
Cambia la propiedad de barrera de seguridad (security-barrier) de la vista. El valor debe
ser un valor booleano, como true
o false.
security_invoker (boolean)
Cambia la propiedad del invocador de seguridad (security-invoker) de la vista. El valor debe
ser un valor booleano, como true
o false.
Por razones históricas, ALTER TABLE también se puede usar con
vistas; pero las únicas variantes de ALTER TABLE
que se permiten con vistas son equivalentes a las mostradas anteriormente.
Para renombrar la vista foo a
bar:
ALTER VIEW foo RENAME TO bar;
Para asociar un valor de columna predeterminado a una vista actualizable:
CREATE TABLE base_table (id int, ts timestamptz); CREATE VIEW a_view AS SELECT * FROM base_table; ALTER VIEW a_view ALTER COLUMN ts SET DEFAULT now(); INSERT INTO base_table(id) VALUES(1); -- ts recibirá un NULL INSERT INTO a_view(id) VALUES(2); -- ts recibirá la hora actual
ALTER VIEW es una extensión de PostgreSQL
del estándar SQL.