Dans Oracle, je peux:
Alter table table_name
modify column_name datatype;
Est-ce possible dans une base de données redshift?
Dans AWS Redshift est maintenant possible de modifier UNIQUEMENT la colonne VARCHAR mais dans ces conditions:
Récemment, AWS a ajouté la prise en charge de l'augmentation de la taille de la colonne varchar,
Modifier une colonne VARCHAR Pour économiser le stockage, vous pouvez définir initialement une table avec des colonnes VARCHAR avec la taille minimale requise pour vos besoins de données actuels. Si plus tard, vous devez prendre en charge des chaînes plus longues, vous pouvez modifier le tableau pour augmenter la taille de la colonne. Pour protéger les données existantes, vous ne pouvez pas réduire la taille des colonnes.
L'exemple suivant modifie la taille de la colonne EVENTNAME en VARCHAR (300).
alter table event alter column eventname type varchar(300);
La commande suivante échoue car elle tente de réduire la taille de la colonne EVENTNAME.
alter table event alter column eventname type varchar(100);
Augmentation de la taille/du type de colonne dans la table de base de données Redshift
Non, vous ne pouvez pas augmenter la taille de la colonne dans Redshift sans recréer le tableau.
Mais si la colonne est la dernière colonne du tableau, vous pouvez ajouter une nouvelle colonne avec les modifications requises et déplacer les données, puis l'ancienne colonne peut être supprimée comme ci-dessous.
ALTER TABLE TEST ADD COLUMN COLUMN_NEW VARCHAR(100);
UPDATE TEST SET COLUMN_NEW = COLUMN_OLD;
ALTER TABLE TEST DROP COLUMN COLUMN_OLD;
ALTER TABLE TEST RENAME COLUMN COLUMN_NEW TO COLUMN_OLD;