Pg_restoreを使用して、ダンプファイルでpostgres dbをロードしました。私は自分のユーザーで自分のデータベースに接続しました:
Sudo -u arajguru psql dump
select current_user;
current_user
--------------
arajguru
これで、新しく作成されたすべてのテーブルを確認できました。
dump=> \dt
List of relations
Schema | Name | Type | Owner
--------+-------------------+-------+----------
public | Approvals | table | arajguru
public | Approvers | table | arajguru
public | Conditions | table | arajguru
public | Entities | table | arajguru
public | EntityDefinitions | table | arajguru
public | Projects | table | arajguru
public | Rules | table | arajguru
public | run_history | table | arajguru
(8 rows)
しかし、select *クエリを実行しようとすると、次のエラーが発生しました。
dump=> select * from Approvals;
ERROR: relation "approvals" does not exist
LINE 1: select * from Approvals;
このエラーの理由は何ですか?助けてください。
二重引用符でテーブルを作成しましたが、名前では大文字と小文字が区別されます。
マニュアルに記載されているとおり"Approvals"
とApprovals
は2つの異なる名前です。
大文字と小文字を区別する方法でテーブル名を作成したので、これらの恐ろしい二重引用符を常に使用する必要があります。
select *
from "Approvals";
一般的なアドバイスとして、SQLでは 決して二重引用符を使用しない です。