Eu tenho um banco de dados chamadomímicono meubanco de dados postgres. Estou tentando executar este comando:
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
mas recebo este erro: relação "admissões" não existe Quando modifico a consulta alterando admissões para imitar iii.admissions, ela funciona. sabendo que mimic iii é o esquema, quando digito essa consulta esse é o resultado que aparece:
SELECT table_name FROM information_schema.tables WHERE table_schema = 'mimiciii';
table_name
--------------------
admissions
callout
caregivers
datetimeevents
...
Minha dúvida é o que posso fazer para que o usuário digite apenas o nome da tabela sem usar o schema.tableName ?
Responder1
Minha dúvida é o que posso fazer para que o usuário digite apenas o nome da tabela sem usar o schema.tableName ?
Ao colocar o esquema em seusearch_path
.
Além de SET search_path TO ...
ser válido durante a sessão, pode ser tornado permanente por usuário com ALTER USER username SET search_path='...'
, ou por banco de dados com ALTER DATABASE dbname SET search_path='...'
.