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.
ALTERTABLEexemples
Les exemples suivants illustrent l'utilisation de base de la ALTER TABLE commande.
Renommer une table ou une vue
La commande suivante renomme la USERS table en USERS _ BKUP :
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
La commande suivante remplace le propriétaire de la VENUE table 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
La commande suivante renomme la VENUESEATS colonne de la VENUE table en VENUESIZE :
alter table venue rename column venueseats to venuesize;
Supprimer une contrainte de table
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. Spécifiez ensuite le nom de la contrainte dans la ALTER TABLE commande. L'exemple suivant recherche les contraintes de la CATEGORY table, puis supprime la clé primaire avec le nomcategory_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 VARCHAR colonne
Pour économiser de l'espace de stockage, vous pouvez d'abord définir un tableau avec des VARCHAR colonnes de la taille minimale requise pour répondre à vos besoins actuels en matière de données. 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 EVENTNAME colonne à VARCHAR (300).
alter table event alter column eventname type varchar(300);
Modifier l’encodage de la compression d’une colonne
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 LZO codage au AZ64 codage.
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 le codage de compression de la colonne c2 en le faisant passer du LZO codage au codage par dictionnaire d'octets.
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 DISTSTYLE KEY DISTKEY colonne
Les exemples suivants montrent comment modifier le DISTSTYLE et DISTKEY d'un tableau.
Créez un tableau avec un style EVEN de distribution. La INFO vue SVV _ TABLE _ indique que c'DISTSTYLEest le casEVEN.
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 le tableau DISTKEY eninv_warehouse_sk
. La INFO vue SVV TABLE _ _ montre la inv_warehouse_sk
colonne comme 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 le tableau DISTKEY eninv_item_sk
. La INFO vue SVV TABLE _ _ montre la inv_item_sk
colonne comme 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 un tableau en DISTSTYLE ALL
Les exemples suivants montrent comment modifier une table en DISTSTYLEALL.
Créez un tableau avec un style EVEN de distribution. La INFO vue SVV _ TABLE _ indique que c'DISTSTYLEest le casEVEN.
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 le tableau DISTSTYLE enALL. La INFO vue SVV TABLE _ _ montre les modificationsDISTSYTLE.
alter table inventory alter diststyle all; select "table", "diststyle" from svv_table_info;
table | diststyle -----------+---------------- inventory | ALL
Modifier un tableau SORTKEY
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 un tableau en ENCODE AUTO
L'exemple suivant montre comment modifier une table en ENCODEAUTO.
La définition de table pour cet exemple est la suivante. c0
La colonne est définie avec le type de codageAZ64, et la colonne c1
est définie avec le type de codageLZO.
create table t1(c0 int encode AZ64, c1 varchar encode LZO);
Pour ce tableau, l'instruction suivante modifie le codage enAUTO.
alter table t1 alter encode auto;
L'exemple suivant montre comment modifier un tableau pour supprimer le ENCODE AUTO paramètre.
La définition de table pour cet exemple est la suivante. Les colonnes de la table sont définies sans encodage. Dans ce cas, le codage par défaut est. ENCODE AUTO
create table t2(c0 int, c1 varchar);
Pour ce tableau, l'instruction suivante modifie le codage de la colonne c0 en. LZO Le codage de la table n'est plus défini sur ENCODEAUTO.
alter table t2 alter column c0 encode lzo;;
Modifier le contrôle de sécurité au niveau des lignes
La commande suivante est RLS désactivée pour le tableau :
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY OFF;
La commande suivante est RLS activée pour le tableau :
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY ON;
La commande suivante active RLS la table et la rend accessible via des partages de 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 la table et la rend inaccessible via les partages de 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 et définit RLS le type de RLS conjonction sur OR pour la table :
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY ON CONJUNCTION TYPE OR;
La commande suivante active et définit RLS le type de RLS conjonction sur AND pour la table :
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY ON CONJUNCTION TYPE AND;