Ich habe eine Datenbank namensnachahmenauf meinemPostgres-Datenbank. Ich versuche, diesen Befehl auszuführen:
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
aber ich erhalte diese Fehlermeldung: Relation "Zulassungen" existiert nicht Wenn ich die Abfrage ändere, indem ich „admissions“ in „mimic iii.admissions“ ändere, funktioniert es. Da ich weiß, dass „mimic iii“ das Schema ist, wird bei der Eingabe der Abfrage folgendes Ergebnis angezeigt:
SELECT table_name FROM information_schema.tables WHERE table_schema = 'mimiciii';
table_name
--------------------
admissions
callout
caregivers
datetimeevents
...
Meine Frage lautet: Was kann ich tun, damit der Benutzer nur den Namen der Tabelle eingibt, ohne schema.tableName zu verwenden?
Antwort1
Meine Frage lautet: Was kann ich tun, damit der Benutzer nur den Namen der Tabelle eingibt, ohne schema.tableName zu verwenden?
Indem Sie das Schema in Ihrsearch_path
.
Darüber hinaus SET search_path TO ...
ist es für die Dauer der Sitzung gültig und kann mit pro Benutzer ALTER USER username SET search_path='...'
oder mit pro Datenbank dauerhaft gemacht werden ALTER DATABASE dbname SET search_path='...'
.