質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Q&A

解決済

2回答

6728閲覧

カラム名の複数同時変更

syuu

総合スコア13

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

0グッド

0クリップ

投稿2019/02/12 07:14

編集2019/02/12 07:19

前提・実現したいこと

postgreSQLをA5を使って勉強中なのですが、
カラム名を一個一個ではなく一気に変更したい。

該当のソースコード

ALTER TABLE test2 RENAME COLUMN 年齢 TO Age; ALTER TABLE test2 RENAME COLUMN 名前 TO LastName; ALTER TABLE test2 RENAME COLUMN 苗字 TO FirstName; ALTER TABLE test2 RENAME COLUMN 生徒ID TO StudentID;

お聞きしたい点

現在上記のコードのように4回に分けて変更しているのですが、
一行にまとめて変更することってできないでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

できるかできないかでいえば

RENAMEおよびSET SCHEMA以外の全ての操作は、結合して複数の変更リストにまとめて、並行に処理することができます。 例えば、複数の列の追加、型の変更を単一のコマンドで実行することができます。 これは特に巨大なテーブルでは便利です。変更のために必要なテーブル全体の走査が1回で済むからです。

できない(RENAMEなので)


最新PostgreSQL11のマニュアルも確認

All the forms of ALTER TABLE that act on a single table, except RENAME, SET SCHEMA, ATTACH PARTITION, and DETACH PARTITION can be combined into a list of multiple alterations to be applied together. For example, it is possible to add several columns and/or alter the type of several columns in a single command. This is particularly useful with large tables, since only one pass over the table need be made.

Google翻訳まま:RENAME、SET SCHEMA、ATTACH PARTITION、およびDETACH PARTITIONを除く、単一のテーブルに作用するすべての形式のALTER TABLEを組み合わせて、複数の変更をまとめて適用することができます。たとえば、1つのコマンドで複数の列を追加したり、複数の列の型を変更したりすることができます。大きなテーブルでは、テーブルを1回だけ通過すればよいため、特に便利です。

やはり、できないようです。

投稿2019/02/12 07:20

編集2019/02/12 07:38
m.ts10806

総合スコア80765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

syuu

2019/02/12 07:39

自分もERROR: ","またはその近辺で構文エラーになってしまいました。 RENAMEは複数指定できないんですね... ありがとうございました。
m.ts10806

2019/02/12 07:41

これは推測ですが手続き上の問題なのかなと。 RENAMEってそれなりに現データに影響がある作業なので、きちんと1つずつ行うような仕様になってるように思います。
guest

0

出来るらしいです。
http://www.postgresqltutorial.com/postgresql-rename-column/

※ウソでした。すみません。コメントご参照下さい。

投稿2019/02/12 07:20

編集2019/02/13 02:41
kunai

総合スコア5405

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/02/12 07:25

バージョンによるんでしょうか。 私の環境(PostgreSQL9.5)ではエラーがでました。 ERROR: ","またはその近辺で構文エラー
kunai

2019/02/13 02:40

すみません、確かめもせずにテキトーな情報を載せてしまい、誤った情報だったようです。 確かに手元の環境でもエラーになります。 大変失礼いたしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問