

 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/). 

# Exemplos de ALTER TABLE
<a name="r_ALTER_TABLE_examples_basic"></a>

Os exemplos a seguir demonstram o uso básico de comando ALTER TABLE. 

## Renomear uma tabela ou visão
<a name="r_ALTER_TABLE_examples_basic-rename-a-table"></a>

O comando a seguir renomeia a tabela de USERS para USERS\$1BKUP: 

```
alter table users
rename to users_bkup;
```

 Você também pode usar esse tipo de comando para renomear uma exibição. 

## Alterar o proprietário de uma tabela ou visualização
<a name="r_ALTER_TABLE_examples_basic-change-the-owner-of-a-table-or-view"></a>

O comando a seguir altera o proprietário da tabela VENUE para o usuário DWUSER: 

```
alter table venue
owner to dwuser;
```

Os comandos a seguir criam uma exibição, depois alteram seu proprietário: 

```
create view vdate as select * from date;
alter table vdate owner to vuser;
```

## Renomeação de uma coluna
<a name="r_ALTER_TABLE_examples_basic-rename-a-column"></a>

O comando a seguir renomeia a coluna VENUESEATS na tabela VENUE para VENUESIZE: 

```
alter table venue
rename column venueseats to venuesize;
```

## Remover uma restrição de tabela
<a name="r_ALTER_TABLE_examples_drop-constraint"></a>

Para remover uma restrição de tabela, como uma chave primária, chave externa ou restrição exclusiva, primeiro encontre o nome interno da restrição. Depois, especifique o nome da restrição no comando ALTER TABLE. O exemplo a seguir encontra as restrições da tabela CATEGORY, depois remove a chave primária com o nome `category_pkey`. 

```
select constraint_name, constraint_type
from information_schema.table_constraints
where constraint_schema ='public'
and table_name = 'category';

constraint_name | constraint_type
----------------+----------------
category_pkey   | PRIMARY KEY

alter table category
drop constraint category_pkey;
```

## Alterar uma coluna VARCHAR
<a name="r_ALTER_TABLE_examples_alter-column"></a>

Para poupar armazenamento, você pode definir uma tabela inicialmente com colunas VARCHAR com o tamanho mínimo necessário para os requisitos dos dados atuais. Posteriormente, para acomodar strings mais longas, você poderá alterar a tabela para aumentar o tamanho da coluna. 

O exemplo a seguir aumenta o tamanho da coluna EVENTNAME para VARCHAR(300). 

```
alter table event alter column eventname type varchar(300);
```

## Alterar uma coluna VARBYTE
<a name="r_ALTER_TABLE_examples_alter-varbyte-column"></a>

Para poupar armazenamento, é possível definir uma tabela inicialmente com colunas VARBYTE com o tamanho mínimo necessário para os requisitos dos dados atuais. Posteriormente, para acomodar strings mais longas, você poderá alterar a tabela para aumentar o tamanho da coluna. 

O exemplo a seguir aumenta o tamanho da coluna EVENTNAME para VARBYTE(300). 

```
alter table event alter column eventname type varbyte(300);
```

## Alterar a codificação de compactação para uma coluna
<a name="r_ALTER_TABLE_examples_alter-column-encoding"></a>

É possível alterar a codificação de compactação de uma coluna. Abaixo, é possível encontrar um conjunto de exemplos demonstrando essa abordagem. A seguir, a definição da tabela para esses exemplos.

```
create table t1(c0 int encode lzo, c1 bigint encode zstd, c2 varchar(16) encode lzo, c3 varchar(32) encode zstd);
```

A instrução a seguir altera a codificação de compactação para a coluna c0 de codificação LZO para codificação AZ64. 

```
alter table t1 alter column c0 encode az64;
```

A instrução a seguir altera a codificação de compactação para a coluna c1 de codificação Zstandard para codificação AZ64. 

```
alter table t1 alter column c1 encode az64;
```

A instrução a seguir altera a codificação de compactação para a coluna c2 de codificação LZO para codificação Byte-dictionary. 

```
alter table t1 alter column c2 encode bytedict;
```

A instrução a seguir altera a codificação de compactação para a coluna c3 de codificação Zstandard para codificação Runlength. 

```
alter table t1 alter column c3 encode runlength;
```

## Alterar a coluna DISTSTYLE KEY DISTKEY
<a name="r_ALTER_TABLE_examples_alter-distkey"></a>

Os exemplos a seguir mostram como alterar o DISTSTYLE e DISTKEY de uma tabela.

Crie uma tabela com o estilo de distribuição EVEN. A visualização SVV\$1TABLE\$1INFO mostra que o DISTSTYLE é EVEN. 

```
create table inventory(
  inv_date_sk int4 not null ,
  inv_item_sk int4 not null ,
  inv_warehouse_sk int4 not null ,
  inv_quantity_on_hand int4
) diststyle even;

Insert into inventory values(1,1,1,1);

select "table", "diststyle" from svv_table_info;

   table   |   diststyle
-----------+----------------
 inventory |     EVEN
```

Altere a tabela DISTKEY para `inv_warehouse_sk`. A visualização SVV\$1TABLE\$1INFO mostra a coluna `inv_warehouse_sk` como a chave de distribuição resultante. 

```
alter table inventory alter diststyle key distkey inv_warehouse_sk;

select "table", "diststyle" from svv_table_info;

   table   |       diststyle
-----------+-----------------------
 inventory | KEY(inv_warehouse_sk)
```

Altere a tabela DISTKEY para `inv_item_sk`. A visualização SVV\$1TABLE\$1INFO mostra a coluna `inv_item_sk` como a chave de distribuição resultante. 

```
alter table inventory alter distkey inv_item_sk;

select "table", "diststyle" from svv_table_info;

   table   |       diststyle
-----------+-----------------------
 inventory | KEY(inv_item_sk)
```

## Alterar uma tabela para DISTSTYLE ALL
<a name="r_ALTER_TABLE_examples_alter-diststyle-all"></a>

Os exemplos a seguir mostram como alterar uma tabela para DISTSTYLE ALL.

Crie uma tabela com o estilo de distribuição EVEN. A visualização SVV\$1TABLE\$1INFO mostra que o DISTSTYLE é EVEN. 

```
create table inventory(
  inv_date_sk int4 not null ,
  inv_item_sk int4 not null ,
  inv_warehouse_sk int4 not null ,
  inv_quantity_on_hand int4
) diststyle even;

Insert into inventory values(1,1,1,1);

select "table", "diststyle" from svv_table_info;

   table   |   diststyle
-----------+----------------
 inventory |     EVEN
```

Altere a tabela DISTSTYLE para ALL. A visualização SVV\$1TABLE\$1INFO mostra a DISTSYTLE alterada. 

```
alter table inventory alter diststyle all;

select "table", "diststyle" from svv_table_info;

   table   |   diststyle
-----------+----------------
 inventory |     ALL
```

## Alterar uma tabela SORTKEY
<a name="r_ALTER_TABLE_examples_alter-sortkey"></a>

É possível alterar uma tabela para ter uma chave de classificação composta ou nenhuma chave de classificação.

Na definição de tabela a seguir, a tabela `t1` é definida com uma chave de classificação intercalada.

```
create table t1 (c0 int, c1 int) interleaved sortkey(c0, c1);
```

O comando a seguir altera a tabela de uma chave de classificação intercalada para uma chave de classificação composta.

```
alter table t1 alter sortkey(c0, c1);
```

O comando a seguir altera a tabela para remover a chave de classificação intercalada.

```
alter table t1 alter sortkey none;
```

Na definição de tabela a seguir, a tabela `t1` é definida com coluna `c0` como chave de classificação intercalada.

```
create table t1 (c0 int, c1 int) sortkey(c0);
```

O comando a seguir altera a tabela `t1` para uma chave de classificação composta.

```
alter table t1 alter sortkey(c0, c1);
```

## Alterar uma tabela para ENCODE AUTO
<a name="r_ALTER_TABLE_examples_alter-encode-auto"></a>

O exemplo a seguir mostra como alterar uma tabela para ENCODE AUTO. 

A seguir, a definição da tabela para esse exemplo. A coluna `c0` é definida com o tipo de codificação AZ64 e coluna `c1` é definida com o tipo de codificação LZO.

```
create table t1(c0 int encode AZ64, c1 varchar encode LZO);
```

Para esta tabela, a instrução a seguir altera a codificação para AUTO.

```
alter table t1 alter encode auto;
```

O exemplo a seguir mostra como alterar uma tabela para remover a configuração ENCODE AUTO. 

A seguir, a definição da tabela para esse exemplo. As colunas da tabela são definidas sem codificação. Nesse caso, a codificação usa como padrão ENCODE AUTO.

```
create table t2(c0 int, c1 varchar);
```

Para esta tabela, a instrução a seguir altera a codificação da coluna c0 para LZO. A codificação da tabela não está mais definida como ENCODE AUTO.

```
alter table t2 alter column c0 encode lzo;;
```

## Alterar o controle de segurança por linha
<a name="r_ALTER_TABLE_examples_basic-rls"></a>

O comando a seguir desativa o RLS para a tabela: 

```
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY OFF;
```

O comando a seguir ativa o RLS para a tabela: 

```
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY ON;
```

O seguinte comando ativa RLS para a tabela e a torna acessível por meio das unidades de compartilhamento de dados: 

```
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY ON;
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY FOR DATASHARES OFF;
```

O seguinte comando ativa RLS para a tabela e a torna inacessível por meio das unidades de compartilhamento de dados: 

```
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY ON;
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY FOR DATASHARES ON;
```

O seguinte comando ativa RLS e define o tipo de conjunção RLS como OR para a tabela: 

```
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY ON CONJUNCTION TYPE OR;
```

O seguinte comando ativa RLS e define o tipo de conjunção RLS como AND para a tabela: 

```
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY ON CONJUNCTION TYPE AND;
```