データベースのテーブルに、仮で用意していたカラムがあり、利用しようとしたら、型の変更が必要になりました。
データベースは、PostgreSQL 12です。
仮でカラムを作成したときに、character varyingを指定していて、利用していないので値はNULLになっています。
カラムの名前の変更は、
ALTER TABLE data_table RENAME COLUMN dummy1 TO start_date;
で変更できました。
www.postgresql.jp
カラムの型の変更は、
ALTER TABLE data_table ALTER COLUMN start_date TYPE date;
を実行すると、
ALTER TABLE data_table ALTER COLUMN start_date TYPE date column "start_date" cannot be cast automatically to type date
が表示されました。
値がnullでも、型の変更ができなかったので、どうすればいいかと検索しました。
検索した結果、USINGを使ってnullを値として指定すれば、できそうとわかったので、
ALTER TABLE data_table ALTER COLUMN start_date TYPE date USING null;
として実行したら、変更ができました。
今回は、未利用のカラムの型変更で、値を引き継がなくて済むので、USING nullの追加で済みました。
値を引き継がなければならない場合は、複雑な処理が必要になりそうです。