Paramètres de configuration dynamique
vous pouvez "abuser" des paramètres de configuration dynamique pour cela :
-- 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;
Les paramètres de configuration sont toujours des valeurs varchar, vous devez donc les convertir en un type de données correct lorsque vous les utilisez. Cela fonctionne avec tout client SQL alors que \set
ne fonctionne que dans psql
Ce qui précède nécessite Postgres 9.2 ou une version ultérieure.
Pour les versions précédentes, la variable devait être déclarée dans le fichier postgresql.conf
avant d'être utilisé, ce qui en limitait quelque peu l'utilité. En fait, il ne s'agit pas de la variable elle-même, mais de la "classe" de configuration qui est essentiellement le préfixe. Mais une fois le préfixe défini, n'importe quelle variable pouvait être utilisée sans modifier postgresql.conf
3 votes
Cela peut se faire uniquement avec PostgreSQL. Voir la réponse à cette question connexe : stackoverflow.com/questions/766657/
4 votes
Cette réponse connexe contient de meilleures réponses : stackoverflow.com/questions/13316773/