リレーションテーブル名が存在しません - PostgreSQL

リレーションテーブル名が存在しません - PostgreSQL

私は、模倣する私の〜の上にポストグレDBこのコマンドを実行しようとしています:

select hadm_id from admission_ids where hadm_id in (select distinct on (subject_id) hadm_id from (select * from admissions order by admittime) tt

しかし、このエラーが表示されます: 関係「入学」は存在しません クエリを修正して、admissions を mimic iii.admissions に変更すると、機能します。mimic iii がスキーマであることを知っているので、このクエリを入力すると、次の結果が表示されます。

SELECT table_name FROM information_schema.tables WHERE table_schema = 'mimiciii';
     table_name     
--------------------
 admissions
 callout
 caregivers
 datetimeevents
 ...

私の質問は、 schema.tableName を使用せずに、ユーザーがテーブルの名前のみを入力できるようにするにはどうすればよいかということです。

答え1

私の質問は、 schema.tableName を使用せずに、ユーザーがテーブルの名前のみを入力できるようにするにはどうすればよいかということです。

スキーマをsearch_path

SET search_path TO ...はセッション期間中有効ですが、 を使用してユーザーごとにALTER USER username SET search_path='...'、または を使用してデータベースごとに 永続的にすることができますALTER DATABASE dbname SET search_path='...'

関連情報