

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# ALTER MATERIALIZED VIEW
<a name="r_ALTER_MATERIALIZED_VIEW"></a>

Altera os atributos de uma visão materializada. 

## Sintaxe
<a name="r_ALTER_MATERIALIZED_VIEW-synopsis"></a>

```
ALTER MATERIALIZED VIEW mv_name
{
AUTO REFRESH { YES | NO } 
| ALTER DISTKEY column_name
| ALTER DISTSTYLE ALL
| ALTER DISTSTYLE EVEN
| ALTER DISTSTYLE KEY DISTKEY column_name
| ALTER DISTSTYLE AUTO
| ALTER [COMPOUND] SORTKEY ( column_name [,...] )
| ALTER SORTKEY AUTO
| ALTER SORTKEY NONE
| ROW LEVEL SECURITY { ON | OFF } [ CONJUNCTION TYPE { AND | OR } ] [FOR DATASHARES]
};
```

## Parâmetros
<a name="r_ALTER_MATERIALIZED_VIEW-parameters"></a>

*mv\$1name*  
O nome da visão materializada a ser alterada.

AUTO REFRESH \$1 YES \$1 NO \$1  
Uma cláusula que ativa ou desativa a atualização automática de uma visão materializada. Para obter informações sobre atualização automática ou visões materializadas, consulte [Atualizar uma visualização materializada](materialized-view-refresh.md).

ALTER DISTSTYLE ALL  
Uma cláusula que altera o estilo de distribuição existente de uma tabela para `ALL`. Considere o seguinte:  
+ Um ALTER DISTSTYLE, ALTER SORTKEY e VACUUM não podem ser executados simultaneamente na mesma relação. 
  + Se VACUUM estiver sendo executado no momento, a execução ALTER DISTSTYLE ALL retornará um erro. 
  + Se ALTER DISTSTYLE ALL estiver em execução, um vacuum em segundo plano não será iniciado em uma relação. 
+ O comando ALTER DISTSTYLE ALL não é compatível para relações com chaves de classificação intercaladas e tabelas temporárias.
+ Se o estilo de distribuição tiver sido definido anteriormente como AUTO, a relação não será mais considerada para otimização automática de tabela. 
Para obter mais informações sobre DISTSTYLE ALL, acesse [CREATE MATERIALIZED VIEW](materialized-view-create-sql-command.md).

ALTER DISTSTYLE EVEN  
Uma cláusula que altera o estilo de distribuição existente de uma tabela para `EVEN`. Considere o seguinte:  
+ Um ALTER DISTSYTLE, ALTER SORTKEY e VACUUM não podem ser executados simultaneamente na mesma relação. 
  + Se VACUUM estiver sendo executado no momento, a execução ALTER DISTSTYLE EVEN retornará um erro. 
  + Se ALTER DISTSTYLE EVEN estiver em execução, um vacuum em segundo plano não será iniciado na relação. 
+ O comando ALTER DISTSTYLE EVEN não é compatível para relações com chaves de classificação intercaladas e tabelas temporárias.
+ Se o estilo de distribuição tiver sido definido anteriormente como AUTO, a relação não será mais considerada para otimização automática de tabela. 
Para obter mais informações sobre DISTSTYLE EVEN, acesse [CREATE MATERIALIZED VIEW](materialized-view-create-sql-command.md).

ALTER DISTKEY *column\$1name* ou ALTER DISTSTYLE KEY DISTKEY *column\$1name*  
Uma cláusula que altera a coluna usada como chave de distribuição de uma relação. Considere o seguinte:  
+ VACUUM e ALTER DISTKEY não podem ser executados simultaneamente na mesma relação. 
  + Se VACUUM já estiver sendo executado, então, ALTER DISTKEY retornará um erro.
  + Se ALTER DISTKEY estiver em execução, o vacuum em segundo plano não será iniciado em uma relação.
  + Se ALTER DISTKEY estiver sendo executado, a limpeza em primeiro plano retornará um erro.
+ Você só pode executar um comando ALTER DISTKEY em uma relação por vez. 
+ O comando ALTER DISTKEY não é compatível para relações com chaves de classificação intercaladas. 
+ Se o estilo de distribuição tiver sido definido anteriormente como AUTO, a relação não será mais considerada para otimização automática de tabela. 
Ao especificar DISTSTYLE KEY, os dados são distribuídos pelos valores na coluna DISTKEY. Para obter mais informações sobre DISTSTYLE, consulte [CREATE MATERIALIZED VIEW](materialized-view-create-sql-command.md).

ALTER DISTSTYLE AUTO  
Uma cláusula que altera o estilo de distribuição existente de uma relação para AUTO.   
Quando você altera um estilo de distribuição para AUTO, o estilo de distribuição da relação é definido como o seguinte:   
+ Uma pequena relação com DISTSTYLE ALL é convertida em AUTO(ALL). 
+ Uma pequena relação com DISTSTYLE EVEN é convertida em AUTO(ALL). 
+ Uma pequena relação com DISTSTYLE KEY é convertida em AUTO(ALL). 
+ Uma grande relação com DISTSTYLE ALL é convertida em AUTO(EVEN). 
+ Uma grande relação com DISTSTYLE EVEN é convertida em AUTO(EVEN). 
+ Uma grande relação com DISTSTYLE KEY é convertida em AUTO(KEY) e a DISTKEY é preservada. Nesse caso, o Amazon Redshift não faz alterações na relação.
Se o Amazon Redshift determinar que um novo estilo de distribuição ou chave melhorará a performance das consultas, o Amazon Redshift poderá alterar o estilo de distribuição ou a chave da relação no futuro. Por exemplo, o Amazon Redshift pode converter uma relação com um DISTSTYLE de AUTO(KEY) em AUTO(EVEN) ou vice-versa. Para obter mais informações sobre o comportamento quando as chaves de distribuição são alteradas, incluindo redistribuição de dados e bloqueios, acesse [Recomendações do Amazon Redshift Advisor](https://docs.aws.amazon.com/redshift/latest/dg/advisor-recommendations.html#alter-diststyle-distkey-recommendation).  
Para mais informações sobre DISTSTYLE AUTO, acesse [CREATE MATERIALIZED VIEW](materialized-view-create-sql-command.md).   
Para visualizar o estilo de distribuição de uma relação, consulte a visualização de catálogo SVV\$1TABLE\$1INFO do sistema. Para obter mais informações, acesse [SVV\$1TABLE\$1INFO](r_SVV_TABLE_INFO.md). Para visualizar as recomendações do Amazon Redshift Advisor para relações, consulte a visualização de catálogo SVV\$1ALTER\$1TABLE\$1RECOMMENDATIONS do sistema. Para obter mais informações, acesse [SVV\$1ALTER\$1TABLE\$1RECOMMENDATIONS](r_SVV_ALTER_TABLE_RECOMMENDATIONS.md). Para exibir as ações executadas pelo Amazon Redshift, consulte a visualização do catálogo do sistema SVL\$1AUTO\$1WORKER\$1ACTION. Para obter mais informações, acesse [SVL\$1AUTO\$1WORKER\$1ACTION](r_SVL_AUTO_WORKER_ACTION.md). 

ALTER [COMPOUND] SORTKEY ( *column\$1name* [,...] )  
Uma cláusula que altera ou adiciona a chave de classificação usada para uma relação. ALTER SORTKEY não é compatível com tabelas temporárias.  
Quando você altera uma chave de classificação, a codificação de compactação de colunas na chave de classificação nova ou original pode ser alterada. Se nenhuma codificação for definida explicitamente para a relação, o Amazon Redshift atribuirá automaticamente codificações de compactação da seguinte maneira:  
+ Colunas que são definidas como chaves de classificação são designadas a compactação RAW.
+ Colunas que são definidas como tipos de dados BOOLEAN, REAL ou DOUBLE PRECISION recebem a compactação RAW.
+ As colunas definidas como SMALLINT, INTEGER, BIGINT, DECIMAL, DATE, TIME, TIMETZ, TIMESTAMP ou TIMESTAMPTZ recebem a compactação AZ64.
+ As colunas definidas como CHAR ou VARCHAR recebem a compactação LZO.
Considere o seguinte:  
+ Você pode definir no máximo 400 colunas para uma chave de classificação por relação. 
+ É possível alterar uma chave de classificação intercalada para uma chave de classificação composta ou nenhuma chave de classificação. Porém, não é possível alterar uma chave de classificação composta para uma chave de classificação intercalada. 
+ Se a chave de classificação tiver sido definida anteriormente como AUTO, a relação não será mais considerada para otimização automática de tabela. 
+ O Amazon Redshift recomenda o uso de codificação RAW (sem compactação) para colunas definidas como chaves de classificação. Quando você altera uma coluna para escolhê-la como uma chave de classificação, a compactação da coluna é alterada para compactação RAW (sem compactação). Isso pode aumentar a quantidade de armazenamento necessária para a relação. Quanto o tamanho da relação aumenta depende da definição específica da relação e do conteúdo da relação. Para obter mais informações sobre compactação, acesse [Codificações de compactação](c_Compression_encodings.md). 
Quando os dados são carregados em uma relação, eles são carregados na ordem da chave de classificação. Quando você altera a chave de classificação, o Amazon Redshift reorganiza os dados. Para obter mais informações sobre SORTKEY, consulte [CREATE MATERIALIZED VIEW](materialized-view-create-sql-command.md).

ALTER SORTKEY AUTO  
Uma cláusula que altera ou adiciona a chave de classificação da relação de destino para AUTO. ALTER SORTKEY AUTO não é compatível com tabelas temporárias.   
Quando você altera uma chave de classificação para AUTO, o Amazon Redshift preserva a chave de classificação existente da relação.   
Se o Amazon Redshift determinar que uma nova chave de classificação melhorará a performance das consultas, o Amazon Redshift poderá alterar a chave de classificação da sua relação no futuro.   
Para obter mais informações sobre SORTKEY AUTO, consulte [CREATE MATERIALIZED VIEW](materialized-view-create-sql-command.md).   
Para visualizar a chave de classificação de uma relação, consulte a visualização de catálogo SVV\$1TABLE\$1INFO do sistema. Para obter mais informações, acesse [SVV\$1TABLE\$1INFO](r_SVV_TABLE_INFO.md). Para visualizar as recomendações do Amazon Redshift Advisor para relações, consulte a visualização de catálogo SVV\$1ALTER\$1TABLE\$1RECOMMENDATIONS do sistema. Para obter mais informações, acesse [SVV\$1ALTER\$1TABLE\$1RECOMMENDATIONS](r_SVV_ALTER_TABLE_RECOMMENDATIONS.md). Para exibir as ações executadas pelo Amazon Redshift, consulte a visualização do catálogo do sistema SVL\$1AUTO\$1WORKER\$1ACTION. Para obter mais informações, acesse [SVL\$1AUTO\$1WORKER\$1ACTION](r_SVL_AUTO_WORKER_ACTION.md). 

ALTER SORTKEY NONE  
Uma cláusula que remove a chave de classificação da relação de destino.   
Se a chave de classificação tiver sido definida anteriormente como AUTO, a relação não será mais considerada para otimização automática de tabela. 

ROW LEVEL SECURITY \$1 ON \$1 OFF \$1 [ CONJUNCTION TYPE \$1 AND \$1 OR \$1 ] [ FOR DATASHARES ]  
Uma cláusula que ativa ou desativa a segurança no nível da linha para uma relação.  
Quando a segurança no nível da linha é ativada para uma relação, você só pode ler as linhas às quais a política de segurança no nível da linha permite acesso. Quando não há política que conceda acesso à relação, você não consegue ver nenhuma linha da tabela. Somente superusuários e usuários ou perfis que tenham o perfil `sys:secadmin` podem definir a cláusula ROW LEVEL SECURITY. Para obter mais informações, consulte [Segurança por linha](t_rls.md).  
+ [ CONJUNCTION TYPE \$1 AND \$1 OR \$1 ] 

  Uma cláusula que permite a você escolher o tipo de conjunção da política de segurança no nível da linha para uma relação. Quando várias políticas de segurança no nível da linha são anexadas a uma relação, você pode combinar as políticas com a cláusula AND ou OR. Por padrão, o Amazon Redshift combina políticas RLS com a cláusula AND. Superusuários, usuários ou funções que tenham a função `sys:secadmin` podem usar essa cláusula para definir o tipo de conjunção da política de segurança no nível da linha para uma relação. Para obter mais informações, consulte [Combinar várias políticas por usuário](t_rls_combine_policies.md). 
+ PARA UNIDADES DE COMPARTILHAMENTO DE DADOS

   Uma cláusula que determina se uma relação protegida por RLS pode ser acessada por meio das unidades de compartilhamento de dados. Por padrão, uma relação protegida por RLS não pode ser acessada por meio de uma unidade de compartilhamento de dados. Um comando ALTER MATERIALIZED VIEW ROW LEVEL SECURITY executado com essa cláusula só afeta a propriedade de acessibilidade da unidade de compartilhamento de dados da relação. A propriedade ROW LEVEL SECURITY não foi alterada.

   Se você tornar uma relação protegida por RLS acessível por meio de unidades de compartilhamentos de dados, a relação não terá segurança no nível da linha no banco de dados compartilhado no lado do consumidor. A relação mantém a propriedade RLS do lado do produtor. 

## Exemplos
<a name="r_ALTER_MATERIALIZED_VIEW-examples"></a>

O exemplo a seguir habilita a visão materializada `tickets_mv` a ser atualizada automaticamente.

```
ALTER MATERIALIZED VIEW tickets_mv AUTO REFRESH YES
```

# Exemplos de DISTSTYLE e SORTKEY para ALTER MATERIALIZED VIEW
<a name="r_ALTER_MATERIALIZED_VIEW-DISTSTYLE-SORTKEY-examples"></a>

Os exemplos neste tópico mostram como realizar alterações DISTSTYLE e SORTKEY utilizando ALTER MATERIALIZED VIEW.

Os seguintes exemplos de consulta mostram como alterar uma coluna DISTSTYLE KEY DISTKEY usando um exemplo de tabela base:

```
CREATE TABLE base_inventory(
  inv_date_sk int4 NOT NULL,
  inv_item_sk int4 NOT NULL,
  inv_warehouse_sk int4 NOT NULL,
  inv_quantity_on_hand int4
);

INSERT INTO base_inventory VALUES(1,1,1,1);

CREATE materialized VIEW inventory diststyle even AS SELECT * FROM base_inventory;
SELECT "table", diststyle FROM svv_table_info WHERE "table" = 'inventory';

ALTER materialized VIEW inventory ALTER diststyle KEY distkey inv_warehouse_sk;
SELECT "table", diststyle FROM svv_table_info WHERE "table" = 'inventory';

ALTER materialized VIEW inventory ALTER distkey inv_item_sk;
SELECT "table", diststyle FROM svv_table_info WHERE "table" = 'inventory';

DROP TABLE base_inventory CASCADE;
```

Altere uma visão materializada para DISTSTYLE ALL:

```
CREATE TABLE base_inventory(
  inv_date_sk int4 NOT NULL,
  inv_item_sk int4 NOT NULL,
  inv_warehouse_sk int4 NOT NULL,
  inv_quantity_on_hand int4
);

INSERT INTO base_inventory VALUES(1,1,1,1);

CREATE materialized VIEW inventory diststyle even AS SELECT * FROM base_inventory;
SELECT "table", diststyle FROM svv_table_info WHERE "table" = 'inventory';

ALTER MATERIALIZED VIEW inventory ALTER diststyle ALL;
SELECT "table", diststyle FROM svv_table_info WHERE "table" = 'inventory';

DROP TABLE base_inventory CASCADE;
```

Os seguintes comandos mostram exemplos de ALTER MATERIALIZED VIEW SORTKEY usando uma tabela base de amostra:

```
CREATE TABLE base_inventory (c0 int, c1 int);

INSERT INTO base_inventory VALUES(1,1);

CREATE materialized VIEW inventory interleaved sortkey(c0, c1) AS SELECT * FROM base_inventory;
SELECT "table", sortkey1 FROM svv_table_info WHERE "table" = 'inventory';

ALTER materialized VIEW inventory ALTER sortkey(c0, c1);
SELECT "table", diststyle, sortkey_num FROM svv_table_info WHERE "table" = 'inventory';

ALTER materialized VIEW inventory ALTER sortkey NONE;
SELECT "table", diststyle, sortkey_num FROM svv_table_info WHERE "table" = 'inventory';

ALTER materialized VIEW inventory ALTER sortkey(c0);
SELECT "table", diststyle, sortkey_num FROM svv_table_info WHERE "table" = 'inventory';

DROP TABLE base_inventory CASCADE;
```