

 Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Esempi di ALTER TABLE
<a name="r_ALTER_TABLE_examples_basic"></a>

I seguenti esempi dimostrano l'utilizzo di base del comando ALTER TABLE. 

## Ridenominazione di una tabella o una vista
<a name="r_ALTER_TABLE_examples_basic-rename-a-table"></a>

Il seguente comando rinomina la tabella USERS in USERS\$1BKUP: 

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

 Puoi anche usare questo tipo di comando per rinominare una vista. 

## Modifica del proprietario di una tabella o di una vista
<a name="r_ALTER_TABLE_examples_basic-change-the-owner-of-a-table-or-view"></a>

Il seguente comando modifica il proprietario della tabella VENUE nell'utente DWUSER: 

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

I seguenti comandi creano una vista, quindi cambiano il suo proprietario: 

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

## Ridenominazione di una colonna
<a name="r_ALTER_TABLE_examples_basic-rename-a-column"></a>

Il seguente comando rinomina la colonna VENUESEATS della tabella VENUE in VENUESIZE: 

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

## Rimozione del vincolo di una tabella
<a name="r_ALTER_TABLE_examples_drop-constraint"></a>

Per eliminare un vincolo di tabella, ad esempio una chiave primaria, una chiave esterna o un vincolo univoco, individua innanzitutto il nome interno del vincolo. Poi specifica il nome del vincolo nel comando ALTER TABLE. L'esempio seguente trova i vincoli per la tabella CATEGORY, quindi rimuove la chiave primaria con il 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;
```

## Modificare una colonna VARCHAR
<a name="r_ALTER_TABLE_examples_alter-column"></a>

Per preservare lo storage, è possibile definire una tabella inizialmente con colonne VARCHAR con la dimensione minima necessaria per i requisiti di dati attuali. Successivamente, per utilizzare stringhe più lunghe, è possibile modificare la tabella per aumentare le dimensioni della colonna. 

L'esempio seguente aumenta le dimensioni della colonna EVENTNAME in VARCHAR(300). 

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

## Modificare una colonna VARBYTE
<a name="r_ALTER_TABLE_examples_alter-varbyte-column"></a>

Per preservare l’archiviazione, puoi definire una tabella inizialmente con colonne VARBYTE con la dimensione minima necessaria per i requisiti di dati attuali. Successivamente, per utilizzare stringhe più lunghe, è possibile modificare la tabella per aumentare le dimensioni della colonna. 

L’esempio seguente aumenta le dimensioni della colonna EVENTNAME in VARBYTE(300). 

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

## Modifica della codifica di compressione per una colonna
<a name="r_ALTER_TABLE_examples_alter-column-encoding"></a>

È possibile modificare la codifica di compressione di una colonna. Di seguito è riportata una serie di esempi che dimostrano questo approccio. La definizione di tabella per questi esempi è come segue.

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

L'istruzione seguente modifica la codifica di compressione per la colonna c0 dalla codifica LZO alla codifica. AZ64 

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

L'istruzione seguente modifica la codifica di compressione per la colonna c1 dalla codifica Zstandard alla codifica. AZ64 

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

La seguente istruzione modifica la codifica di compressione per la colonna c2 dalla codifica LZO alla codifica Byte-Dictionary. 

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

La seguente istruzione modifica la codifica di compressione per la colonna c3 dalla codifica Zstandard alla codifica Runlength. 

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

## Modificare una colonna DISTSTYLE KEY DISTKEY
<a name="r_ALTER_TABLE_examples_alter-distkey"></a>

I seguenti esempi mostrano come modificare DISTSTYLE e DISTKEY di una tabella.

Crea una tabella con stile di distribuzione EVEN. La vista SVV\$1TABLE\$1INFO mostra che 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
```

Modificare la tabella DISTKEY in `inv_warehouse_sk`. La vista SVV\$1TABLE\$1INFO mostra la colonna `inv_warehouse_sk` come chiave di distribuzione risultante. 

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

select "table", "diststyle" from svv_table_info;

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

Modificare la tabella DISTKEY in `inv_item_sk`. La vista SVV\$1TABLE\$1INFO mostra la colonna `inv_item_sk` come chiave di distribuzione risultante. 

```
alter table inventory alter distkey inv_item_sk;

select "table", "diststyle" from svv_table_info;

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

## Modificare una tabella in DISTSTYLE ALL
<a name="r_ALTER_TABLE_examples_alter-diststyle-all"></a>

Gli esempi seguenti mostrano come modificare una tabella in DISTSTYLE ALL.

Crea una tabella con stile di distribuzione EVEN. La vista SVV\$1TABLE\$1INFO mostra che 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
```

Modificare la tabella DISTSTYLE su ALL. La vista SVV\$1TABLE\$1INFO mostra il DISTSYTLE modificato. 

```
alter table inventory alter diststyle all;

select "table", "diststyle" from svv_table_info;

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

## Modifica una tabella SORTKEY
<a name="r_ALTER_TABLE_examples_alter-sortkey"></a>

È possibile modificare una tabella per avere una chiave di ordinamento composta o nessuna chiave di ordinamento.

Nella seguente definizione della tabella, tabella `t1` è definita con una chiave di ordinamento interlacciata.

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

Il comando seguente modifica la tabella da una chiave di ordinamento interlacciata a una chiave di ordinamento composta.

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

Il comando seguente modifica la tabella per rimuovere la chiave di ordinamento interlacciata.

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

Nella seguente definizione della tabella, tabella `t1` è definita con una colonna `c0` come chiave di ordinamento.

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

Il comando seguente modifica la tabella `t1` in una chiave di ordinamento composta.

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

## Modifica di una tabella in ENCODE AUTO
<a name="r_ALTER_TABLE_examples_alter-encode-auto"></a>

L'esempio seguente mostra come modificare una tabella in ENCODE AUTO. 

La definizione di tabella per questo esempio è come segue. `c0`La colonna è definita con il tipo di codifica e la colonna `c1` è definita con il tipo di AZ64 codifica LZO.

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

Per questa tabella, l'istruzione seguente modifica la codifica in AUTO.

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

L'esempio seguente mostra come modificare una tabella per rimuovere l'impostazione ENCODE AUTO. 

La definizione di tabella per questo esempio è come segue. Le colonne della tabella sono definite senza codifica. In questo caso, la codifica predefinita è ENCODE AUTO.

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

Per questa tabella, la seguente istruzione modifica la codifica della colonna c0 in LZO. La codifica della tabella non è più impostata su ENCODE AUTO.

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

## Modifica del controllo della sicurezza a livello di riga
<a name="r_ALTER_TABLE_examples_basic-rls"></a>

Il seguente comando disattiva RLS per la tabella: 

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

Il seguente comando disattiva RLS (sicurezza a livello di riga) per la tabella: 

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

Il seguente comando attiva RLS per la tabella e la rende accessibile nell'unità di condivisione dati: 

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

Il seguente comando attiva RLS per la tabella e la rende inaccessibile nell'unità di condivisione dati: 

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

Il seguente comando attiva RLS e imposta il tipo di combinazione RLS su OR per la tabella: 

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

Il seguente comando attiva RLS e imposta il tipo di combinazione RLS su AND per la tabella: 

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