LoginSignup
1
1

More than 5 years have passed since last update.

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

Posted at

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
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1