PostgreSQLのALTER TABLEでカラム名(列名)を変更したい!

カラム名を間違えていたので、変更したい。ALTER TABLEを使えばいいことはなんとなくわかるものの書き方がわからないので調べてみました。

PostgreSQL カラム名変更 構文

PostgreSQLのサイトをみると構文は以下のようになっていました。

ALTER TABLE products RENAME COLUMN product_no TO product_number;

これが私にはわかりづらく解読に時間がかかりました。
以下のように書けば良いようです。

ALTER TABLE テーブル名 RENAME 旧カラム名 to 新カラム名;

ではついでにどのようになるのか実際に書いてみます。

実際に書いてみる

動作環境

SQL FIDDLEのサイトが絶不調なのでSQLiteOnline.comのPostgreSQLで動作確認しています。

準備

以下のテーブルを使用します。

itemiditemnamequantityarea
2プリン25大阪
3ゼリー30東京
4ティラミス15大阪
5ヨーグルト30東京
6ゼリー20大阪

テーブル作成用サンプルコード

-- CREATE文 item テーブル
CREATE TABLE item (
ItemID numeric(8, 0) unique not null,
ItemName character varying (20),
Quantity numeric(8, 0),
AREA character varying (20),
primary key(ItemID)
);
-- itemテーブル用INSERT文
insert into item
values(0002, 'プリン', 25, '大阪'),
(0003, 'ゼリー', 30, '東京'),
(0004, 'ティラミス', 15,'大阪'),
(0005, 'ヨーグルト', 30, '東京'),
(0006, 'ゼリー', 20, '大阪');

カラム名変更サンプルコード

それでは上記 列名「itemname」を「productname」に変更したいと思います。

ALTER TABLE item RENAME itemname to productname;

上記を実行し、以下SQL文でitemテーブルを取得します。

SELECT * from item;

■ 結果

temidproductnamequantityarea
2プリン25大阪
3ゼリー30東京
4ティラミス15大阪
5ヨーグルト30東京
6ゼリー20大阪

列名を変更することに成功しました。

複数名で作業していたりすると、カラム名の名前のつけ方が略称になっていたりして、カラム名を変更する機会がわりとありました。

ALTER TABLE は使いこなせれば多少のミスもすぐ隠蔽できそうです。

PostgreSQL, SQL

Posted by Nakamoto