

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Exemples ALTER TABLE
<a name="r_ALTER_TABLE_examples_basic"></a>

Les exemples suivants illustrent l’utilisation de base de la commande ALTER TABLE. 

## Renommer une table ou une vue
<a name="r_ALTER_TABLE_examples_basic-rename-a-table"></a>

La commande suivante permet de renommer la table USERS en USERS\$1BKUP : 

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

 Vous pouvez également utiliser ce type de commande pour renommer une vue. 

## Modifier le propriétaire d’une table ou d’une vue
<a name="r_ALTER_TABLE_examples_basic-change-the-owner-of-a-table-or-view"></a>

La commande suivante remplace le propriétaire de la table VENUE par l’utilisateur DWUSER : 

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

Les commandes suivantes créent une vue, puis modifient son propriétaire : 

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

## Renommer une colonne
<a name="r_ALTER_TABLE_examples_basic-rename-a-column"></a>

La commande suivante renomme la colonne VENUESEATS de la table VENUE en VENUESIZE : 

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

## Supprimer une contrainte de table
<a name="r_ALTER_TABLE_examples_drop-constraint"></a>

Pour supprimer une contrainte de table, telle qu’une contrainte de clé primaire, de clé étrangère ou unique, commencez par rechercher le nom interne de la contrainte. Ensuite, spécifiez le nom de la contrainte dans la commande ALTER TABLE. L’exemple suivant recherche les contraintes de la table CATEGORY, puis supprime la clé principale avec le nom `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;
```

## Modifier une colonne VARCHAR
<a name="r_ALTER_TABLE_examples_alter-column"></a>

Pour conserver le stockage, vous pouvez définir une table initialement avec des colonnes VARCHAR dotées de la taille minimale nécessaire pour vos données actives. Vous pouvez modifier ultérieurement la table afin d’augmenter la taille de la colonne si plus tard vous avez besoin d’accueillir plus de chaînes. 

L’exemple suivant augmente la taille de la colonne EVENTNAME à VARCHAR (300). 

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

## Modifier une colonne VARBYTE
<a name="r_ALTER_TABLE_examples_alter-varbyte-column"></a>

Pour conserver le stockage, vous pouvez définir une table initialement avec des colonnes VARBYTE dotées de la taille minimale nécessaire pour vos données actives. Vous pouvez modifier ultérieurement la table afin d’augmenter la taille de la colonne si plus tard vous avez besoin d’accueillir plus de chaînes. 

L’exemple suivant augmente la taille de la colonne EVENTNAME à VARBYTE(300). 

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

## Modifier l’encodage de la compression d’une colonne
<a name="r_ALTER_TABLE_examples_alter-column-encoding"></a>

Vous pouvez modifier le codage de compression d’une colonne. Vous trouverez ci-dessous une série d’exemples illustrant cette approche. La définition de table pour ces exemples est la suivante.

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

L'instruction suivante modifie le codage de compression de la colonne c0 du codage LZO au codage. AZ64 

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

L'instruction suivante modifie le codage de compression de la colonne c1 du codage standard Z au AZ64 codage. 

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

L’instruction suivante modifie l’encodage de compression pour la colonne c2 de l’encodage LZO à l’encodage Byte-dictionary. 

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

L’instruction suivante modifie l’encodage de compression pour la colonne c3 de l’encodage Zstandard à l’encodage Runlength. 

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

## Modifier une colonne DISTSTYLE KEY DISTKEY
<a name="r_ALTER_TABLE_examples_alter-distkey"></a>

Les exemples suivants montre comment modifier les colonnes DISTSTYLE et DISTKEY d’une table.

Créez une table avec un style de distribution EVEN. La vue SVV\$1TABLE\$1INFO montre que la colonne DISTSTYLE est 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
```

Modifiez la table DISTKEY en `inv_warehouse_sk`. La vue SVV\$1TABLE\$1INFO montre la colonne `inv_warehouse_sk` en tant que clé de distribution résultante. 

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

select "table", "diststyle" from svv_table_info;

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

Modifiez la table DISTKEY en `inv_item_sk`. La vue SVV\$1TABLE\$1INFO montre la colonne `inv_item_sk` en tant que clé de distribution résultante. 

```
alter table inventory alter distkey inv_item_sk;

select "table", "diststyle" from svv_table_info;

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

## Modifier une table en DISTSTYLE ALL
<a name="r_ALTER_TABLE_examples_alter-diststyle-all"></a>

Les exemples suivants montrent comment modifier une table en DISTSTYLE ALL.

Créez une table avec un style de distribution EVEN. La vue SVV\$1TABLE\$1INFO montre que la colonne DISTSTYLE est 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
```

Modifiez la table DISTSTYLE en ALL. La vue SVV\$1TABLE\$1INFO affiche le DISTSYTLE modifié. 

```
alter table inventory alter diststyle all;

select "table", "diststyle" from svv_table_info;

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

## Modifier une table SORTKEY
<a name="r_ALTER_TABLE_examples_alter-sortkey"></a>

Vous pouvez modifier une table pour avoir une clé de tri composée ou aucune clé de tri.

Dans la définition de table suivante, la table `t1` est définie par une clé de tri entrelacée.

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

La commande suivante modifie la table d’une clé de tri entrelacée en une clé de tri composée.

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

La commande suivante modifie la table pour supprimer la clé de tri entrelacée.

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

Dans la définition de table suivante, la table `t1` est définie avec une colonne `c0` comme clé de tri.

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

La commande suivante modifie la table `t1` en clé de tri composée.

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

## Modifier une table en ENCODE AUTO
<a name="r_ALTER_TABLE_examples_alter-encode-auto"></a>

L’exemple suivant montre comment modifier une table en ENCODE AUTO. 

La définition de table pour cet exemple est la suivante. `c0`La colonne est définie avec le type de codage AZ64, et la colonne `c1` est définie avec le type de codage LZO.

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

Pour cette table, l’instruction suivante modifie l’encodage en AUTO.

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

L’exemple suivant illustre comment modifier une table pour supprimer le paramètre ENCODE AUTO. 

La définition de table pour cet exemple est la suivante. Les colonnes de la table sont définies sans encodage. Dans ce cas, l’encodage est par défaut ENCODE AUTO.

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

Pour cette table, l’instruction suivante modifie l’encodage de la colonne c0 en LZO. L’encodage de la table n’est plus défini sur ENCODE AUTO.

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

## Modifier le contrôle de sécurité au niveau des lignes
<a name="r_ALTER_TABLE_examples_basic-rls"></a>

La commande suivante désactive la politique RLS pour la table : 

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

La commande suivante active RLS pour la table : 

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

La commande suivante active RLS pour la table et la rend accessible sur les unités de partage des données : 

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

La commande suivante active RLS pour la table et la rend inaccessible sur les unités de partage des données : 

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

La commande suivante active RLS et définit le type de conjonction RLS sur OR pour la table : 

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

La commande suivante active RLS et définit le type de conjonction RLS sur AND pour la table : 

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