Dynamische Konfig-Einstellungen
Sie können die dynamischen Konfigurationseinstellungen dafür "missbrauchen":
-- choose some prefix that is unlikely to be used by postgres
set session my.vars.id = '1';
select *
from person
where id = current_setting('my.vars.id')::int;
Konfigurationseinstellungen sind immer varchar-Werte, so dass Sie sie in den richtigen Datentyp umwandeln müssen, wenn Sie sie verwenden. Dies funktioniert mit jedem SQL-Client, während \set
funktioniert nur in psql
Die obigen Ausführungen erfordern Postgres 9.2 oder höher.
In früheren Versionen musste die Variable in postgresql.conf
vor ihrer Verwendung, was ihre Verwendbarkeit etwas einschränkte. Eigentlich nicht die Variable selbst, sondern die Konfigurations-"Klasse", die im Wesentlichen das Präfix ist. Aber sobald das Präfix definiert war, konnte jede Variable verwendet werden, ohne dass die postgresql.conf
3 Stimmen
Es kann nur in PostgreSQL gemacht werden. Siehe die Antwort auf diese verwandte Frage: stackoverflow.com/questions/766657/
3 Stimmen
Diese verwandte Antwort hat bessere Antworten: stackoverflow.com/questions/13316773/