Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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
kter
creema
全国のつくり手とつかい手が Web 上で直接作品を売買できる、日本最大級のハンドメイドマーケットプレイス「Creema」の企画、開発、運営するスタートアップです。「本当にいいものが埋もれてしまうことのない、フェアで大規模な新しい経済圏をつくろう」を合言葉に、メンバー一丸となって、たのしくストイックに活動を行っています。
https://www.creema.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away