Tihiroのストレスフリーな生活

少しだけ頭使って後は根性

-tオプションをつけてテーブル名指定でpg_restoreしたけどリストアされない。

-tオプションをつけてテーブル名を指定してリストアしたところ、実行が空振り(すぐに終了)する。もちろんテーブルはリストアされていない。 何故かと色々検証してみたところ、テーブル名が大文字小文字を判別している模様。 つまりはTB_NAMEっていうテーブルをリストアしたい場合

pg_restore -t "TB_NAME" -d postgres -U postgres pg_dump.dmp

的にするとOKの模様。

PostgreSQLはテーブル名を自動的に小文字に変換するので、明示的に大文字にしたい場合はダブルコーテーションが必要。ってことです。Oracleは逆なので正直ややこいですよね。