web-dev-qa-db-ja.com

Postgres:関係が存在しないエラー

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;

このエラーの理由は何ですか?助けてください。

14
Ayushi Rajguru

二重引用符でテーブルを作成しましたが、名前では大文字と小文字が区別されます。

マニュアルに記載されているとおり"Approvals"Approvalsは2つの異なる名前です。

大文字と小文字を区別する方法でテーブル名を作成したので、これらの恐ろしい二重引用符を常に使用する必要があります。

select * 
from "Approvals";

一般的なアドバイスとして、SQLでは 決して二重引用符を使用しない です。

23