Bonjour à tous,

Je suis à la recherche d'un moyen, en PostgreSQL, d'utiliser des variables à la manière de Mysql.

Je m'explique en MySQL, on peut faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
SET @UserId='toto'
-- Ensuite on peut utiliser cette variable dans les requêtes SQL et les triggers.
MySQL permet d'utiliser la variable @UserId partout.

En PostgreSQL, j'ai trouvé qu'on pouvait utiliser un truc semblable :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
SET company.UserId='toto';
--ou 
select set_config('company.UserId','2',FALSE); -- initialisée  pour la session. Si TRUE; la variable est initialisée pour la transaction en cours.
-- Ensuite peut utiliser cette variable dans les requêtes SQL et les triggers.
En PostgreSQL, on peut utiliser ces "variables" définies par l'utilisateur, dans les requêtes SQL ( en la récupérant de cette façon : select current_setting('company.id') ( Il faut cependant faire attention au casting de la la donnée si elle est utilisée dans une clause WHERE).
Ces variable peuvent être aussi utilisées dans les triggers et les fonctions.

Si je ne me trompe, le nom de la variable doit être scindée en 2 parties pour éviter tout amalgame avec les paramètres "built-in" de PostgreSQL. Je suppose qu'on ne peut pas retirer la 1ère partie?

Est ce qu'il y a d'autres moyens d'utiliser ces "variables"?

Est ce qu'il y a des références vers de la doc (officiel?)car je n'ai pas vu grand chose, juste quelque postes ça et là.

Merci