我的postgres DB上有一个名为mimic的数据库。我正在尝试执行此命令:
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”不存在 当我通过更改 admissions 来模仿 iii.admissions 来修改查询时,它可以工作。知道模仿 iii 是架构,当我键入此查询时,这是出现的结果:
SELECT table_name FROM information_schema.tables WHERE table_schema = 'mimiciii';
table_name
--------------------
admissions
callout
caregivers
datetimeevents
...
我的问题是我可以做些什么来让用户只输入表的名称而不使用 schema.tableName ?
通过将架构放入您的
search_path
.除了
SET search_path TO ...
在会话期间有效之外,它可以使用 为每个用户永久设置,也可以使用 为ALTER USER username SET search_path='...'
每个数据库永久设置ALTER DATABASE dbname SET search_path='...'
。