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.
ALTER TABLE REPLACE COLUMNS
Supprime toutes les colonnes existantes d'une table créée avec le LazySimpleSerDeet les remplace par le jeu de colonnes spécifié. Lorsque la syntaxe facultative PARTITION
est utilisée, met à jour les métadonnées de partition. Vous pouvez également utiliser ALTER TABLE REPLACE
COLUMNS
pour supprimer des colonnes en spécifiant uniquement les colonnes que vous souhaitez conserver.
Résumé
ALTER TABLE table_name
[PARTITION
(partition_col1_name = partition_col1_value
[,partition_col2_name = partition_col2_value][,...])]
REPLACE COLUMNS (col_name data_type [, col_name data_type, ...])
Paramètres
- PARTITION (partition_col_name = partition_col_value [,...])
-
Spécifie une partition avec les combinaisons nom de colonne/valeur que vous spécifiez. Placez
partition_col_value
entre guillemets uniquement si le type de données de la colonne est une chaîne. - REMPLACER LES COLONNES (col_name data_type [,col_name data_type,...])
-
Remplace les colonnes existantes par les noms de colonnes et les types de données spécifiés.
Remarques
-
Pour consulter la modification des colonnes de la table dans le panneau de navigation de l'éditeur de requêtes Athena après avoir exécuté
ALTER TABLE REPLACE COLUMNS
, vous devrez peut-être actualiser manuellement la liste des tables dans l'éditeur, puis développer à nouveau la table. -
ALTER TABLE REPLACE COLUMNS
ne fonctionne pas pour les colonnes avec le type de donnéesdate
. Pour contourner ce problème, utilisez le type de donnéestimestamp
dans la table à la place. -
Notez que même si vous ne remplacez qu'une seule colonne, la syntaxe doit être
ALTER TABLE
, avec COLUMNS au pluriel. Vous devez spécifier non seulement la colonne que vous souhaitez remplacer, mais aussi les colonnes que vous souhaitez conserver. Sinon, les colonnes que vous ne spécifiez pas seront supprimées. Cette syntaxe et ce comportement proviennent du DDL Apache Hive. Pour référence, consultez la section Add/Replace columnstable-name
REPLACE COLUMNS-Ajouter/remplacer des colonnes) dans la documentation Apache.
Exemple
Dans l'exemple suivant, la tablenames_cities
, créée à l'aide du LazySimpleSerDe, comporte trois colonnes nommées col1
col2
, etcol3
. Toutes les colonnes sont de type string
. Pour afficher les colonnes du tableau, la commande suivante utilise la commande SHOW COLUMNS suivante.
SHOW COLUMNS IN names_cities
Résultat de la requête :
col1 col2 col3
La commande ALTER TABLE REPLACE COLUMNS
suivante remplace les noms des colonnes par first_name
, last_name
et city
. Les données source sous-jacentes ne sont pas affectées.
ALTER TABLE names_cities REPLACE COLUMNS (first_name string, last_name string, city string)
Pour tester le résultat, SHOW COLUMNS
est exécuté à nouveau.
SHOW COLUMNS IN names_cities
Résultat de la requête :
first_name last_name city
Une autre façon d'afficher les nouveaux noms de colonnes consiste à prévisualiser la table dans l'éditeur de requêtes Athena ou d'exécuter votre propre requête SELECT
.