Amazon Redshiftのカラム属性を変更する場合の手順

Amazon Redshiftのカラム属性を変更する場合の手順:

Redshiftでカラムの属性を変更する場合、一旦別名で変更後の属性でカラムを作った後、リネームして既存カラムと置き換える必要があります。

下記の例ではtable_nameというテーブルに対して、column_nameというカラムのデフォルト値を変更していますが、デフォルト値以外の変更も基本同じような対応で可能です。


column_name_tmpというカラム名で新しいカラムデフォルト値を設定する。
ALTER TABLE table_name ADD COLUMN column_name_tmp VARCHAR(20) DEFAULT 'new_default_value'; 

既存カラム (column_name) の値を先ほど作成したcolumn_name_tmpにコピーする。
UPDATE table_name SET column_name_tmp = column_name; 

既存カラムを削除する。
ALTER TABLE table_name DROP COLUMN column_name CASCADE; 

新しく作成したカラムを既存カラム名にリネームする。
ALTER TABLE table_name RENAME COLUMN column_name_tmp TO column_name; 

旧のデフォルト値で入っていたデータの更新
UPDATE table_name SET column_name = 'new_default_value' WHERE column_name = 'old_default_value'; 

権限がリセットされてしまった場合はつけ直す
-- user_nameに対してtable_nameテーブルの全操作を許可 
grant all privileges on table_name TO user_name; 
-- 確認 
\z 

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)