PostgreSQLのテーブル名を変更する psql、pgAdmin、VBScriptでテーブル名を変更

PostgreSQLに限らず、データベースを運用していると「テーブル名を変更したい」ということがあるかもしれません。他のデータベースと同様にSQLでALTER TABLEを発行することでテーブル名を変更できます。PostgreSQLの場合は以下の方法でテーブル名を変更できます。

■psqlでテーブル名を変更する方法

コマンドプロンプトからpsql.exeでPostgreSQLサーバーにログインし以下のSQLコマンドを発行します。

ALTER TABLE 変更前テーブル名 RENAME TO 変更後テーブル名;

↑ oldtable を newtableに変更した場合

■pgAdminでテーブル名を変更する方法


↑ 変更したいテーブルを右クリックし「プロパティ(P)…」をクリックします。


↑「名前」テキストボックスに変更後のテーブル名を入力し「OK」をクリックします。

■VBScriptでテーブル名を変更する方法

VBScriptでテーブル名を変更する場合、ODBCを使用してPostgreSQLサーバーに接続しSQLを発行します。PostgreSQL ODBC Driverがあらかじめインストールされていないとスクリプト実行時にエラーとなります。インストール済みの場合は以下のスクリプトを実行してください。
※先頭3行はお使いの環境に合わせて変更してください。

64bit版のODBCドライバを使用する場合はこちらのスクリプト
Const SV = "localhost"
Const DB = "sample"
Const PW = "postgres"

Dim CNN
Set CNN = WScript.CreateObject("ADODB.Connection")
CNN.Open "Provider=MSDASQL;Driver=PostgreSQL Unicode(x64);UID=postgres;Port=5432" &_
         ";Server=" & SV & ";Database=" & DB & ";PWD=" & PW

CNN.Execute "ALTER TABLE oldtable RENAME TO newtable;"

CNN.Close
Set CNN = Nothing
WScript.Echo "テーブル名変更に成功"
32bit版のODBCドライバを使用する場合はこちらのスクリプト
Const SV = "localhost"
Const DB = "sample"
Const PW = "postgres"

Dim CNN
Set CNN = WScript.CreateObject("ADODB.Connection")
CNN.Open "Provider=MSDASQL;Driver=PostgreSQL Unicode;UID=postgres;Port=5432" &_
         ";Server=" & SV & ";Database=" & DB & ";PWD=" & PW

CNN.Execute "ALTER TABLE oldtable RENAME TO newtable;"

CNN.Close
Set CNN = Nothing
WScript.Echo "テーブル名変更に成功"

変更に成功すると画面にメッセージボックスが表示されます。