web-dev-qa-db-ja.com

PostgreSQLを使用して1つのステートメントで複数の列の名前を変更する

単一のステートメントで複数の列の名前を変更することは可能ですか?

ALTER TABLE Users
    RENAME COLUMN userName TO user_name, 
    RENAME COLUMN realName TO real_name;
25
Rovanion

いいえ

他のアクションを組み合わせることができますが、RENAMEではできません。 マニュアル:

RENAMEALTER TABLESET SCHEMA、およびATTACH PARTITIONを除く単一のテーブルで動作するDETACH PARTITIONのすべての形式は、複数のリストに結合できます。一緒に適用される変更。

RENAMEはシステムカタログでの小さな操作であるため、複数のステートメントを実行しても害はありません。ロックのオーバーヘッドを最小限に抑えるために、単一のトランザクションで実行してください。

ALTER COLUMN ... SET TYPEのような他のアクションは、テーブル全体を書き換える必要があるため、潜在的に高価です。大きなテーブルでは、可能な限り1つのステートメントで行うのが賢明です。

38