ALTER VIEW — modifica a definição de uma visão
ALTER VIEW [ IF EXISTS ]nome ALTER [ COLUMN ]nome_da_coluna SET DEFAULTexpressãoALTER VIEW [ IF EXISTS ]nome ALTER [ COLUMN ]nome_da_colunaDROP DEFAULT ALTER VIEW [ IF EXISTS ]nome OWNER TO {novo_dono| CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER VIEW [ IF EXISTS ]nome RENAME [ COLUMN ]nome_da_colunaTOnovo_nome_da_colunaALTER VIEW [ IF EXISTS ]nome RENAME TOnovo_nomeALTER VIEW [ IF EXISTS ]nome SET SCHEMAnovo_esquemaALTER VIEW [ IF EXISTS ]nome SET (nome_da_opção_da_visão[=valor_da_opção_da_visão] [, ... ] ) ALTER VIEW [ IF EXISTS ]nome RESET (nome_da_opção_da_visão[, ... ] )
O comando ALTER VIEW altera várias propriedades
auxiliares de uma visão.
(Se for desejado alterar a consulta de definição da visão,
deve ser usado o comando CREATE OR REPLACE VIEW.)
É necessário ser o dono da visão para poder executar o comando
ALTER VIEW.
Para alterar o esquema da visão, também é necessário ter
o privilégio CREATE no novo esquema.
Para alterar o dono, é necessário ser capaz de executar o comando
SET ROLE para a função de banco de dados
(role) que será a nova dona,
e esta função de banco de dados precisa possuir o privilégio
CREATE no esquema da visão.
(Estas restrições impõem que alterar o dono não faz nada que
não poderia ser feito excluindo e recriando a visão.
Entretanto, um superusuário pode alterar o dono de qualquer
visão.)
nomeO nome (opcionalmente qualificado pelo esquema) da visão existente.
nome_da_colunaO nome da coluna existente.
novo_nome_da_colunaO novo nome para a coluna existente.
IF EXISTSNão será relatado nenhum erro se a visão não existir. É emitido um aviso neste caso.
SET/DROP DEFAULT
Estas formas definem ou removem o valor padrão de uma coluna.
O valor padrão de uma coluna de visão é aplicado em qualquer
comando INSERT ou UPDATE
cujo destino seja a visão, antes de aplicar quaisquer regras
ou gatilhos para a visão.
O padrão da visão, portanto, terá precedência sobre quaisquer
valores padrão das relações subjacentes.
novo_donoO nome de usuário do novo dono da visão.
novo_nomeO novo nome para a visão.
novo_esquemaO novo esquema para a visão.
SET ( nome_da_opção_da_visão [= valor_da_opção_da_visão] [, ... ] )RESET ( nome_da_opção_da_visão [, ... ] )Define ou redefine uma opção da visão. As opções com suporte no momento são:
check_option (enum)
Altera a opção de verificação da visão.
O valor deve ser local ou
cascaded.
security_barrier (boolean)
Altera a propriedade de barreira de segurança
(security_barrier) da visão.
Deve ser um valor booleano, como true ou
false.
security_invoker (boolean)
Altera a propriedade de chamador de segurança
(security_invoker) da visão.
Deve ser um valor booleano, como true ou
false.
Por motivos históricos, o comando ALTER TABLE
também pode ser usado com visões; mas as únicas variantes de
ALTER TABLE permitidas com visões são
equivalentes às mostradas acima.
Para mudar o nome da visão de foo para
bar:
ALTER VIEW foo RENAME TO bar;
Para anexar um valor padrão de coluna a uma visão atualizável:
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 recebe o valor NULL INSERT INTO a_view(id) VALUES(2); -- ts recebe a hora corrente
O comando ALTER VIEW é uma extensão do
PostgreSQL ao padrão SQL.