1. ホーム
  2. sql

[解決済み] Postgresqlのテーブルは存在するが、クエリ時に "related does not exist "と表示される。

2022-08-07 05:28:51

質問

いくつかのテーブルを持つpostgresqlのデータベースを持っています。私はクエリを実行する場合。

SELECT column_name
FROM information_schema.columns
WHERE table_name="my_table";

ちゃんとカラムのリストが返ってきますよ。

しかし、クエリをかけると

SELECT *
FROM "my_table";

エラーが出ます。

(ProgrammingError) relation "my_table" does not exist
'SELECT *\n    FROM "my_table"\n' {}

カラムは取得できても、テーブルをクエリできない理由について、何か考えはありますか?目標は、テーブルをクエリできるようにすることです。

どのように解決するのですか?

スキーマが公開されていない場合、スキーマをインクルードする必要があります。

SELECT *
FROM <schema>."my_table"

または、デフォルトのスキーマを変更することもできます

SHOW search_path;
SET search_path TO my_schema;

テーブルスキーマの確認はこちら

SELECT *
FROM information_schema.columns

例えば、あるテーブルがデフォルトスキーマである場合 public の両方が動作します。

SELECT * FROM parroquias_region
SELECT * FROM public.parroquias_region

しかし、セクタはスキーマを指定する必要があります

SELECT * FROM map_update.sectores_point