Postgres n'utilise normalement pas de variables en SQL brut. Mais vous pouvez fais ça aussi :
SET foo.test = 'SELECT bar FROM baz';
SELECT current_setting('foo.test');
En savoir plus sur les options personnalisées dans le manuel.
Dans PostgreSQL 9.1 ou une version antérieure, vous deviez déclarer custom_variable_classes
avant de pouvoir l'utiliser.
Cependant, vous ne pouvez pas EXECUTE
SQL dynamique sans PL (langage procédural). Vous utiliseriez un DO
commande pour exécuter des instructions ad hoc (mais vous ne pouvez pas en renvoyer de données). Ou utilisez CREATE FUNCTION
pour créer une fonction qui exécute du SQL dynamique (et peut renvoyer des données de toutes les manières imaginables).
Assurez-vous de vous protéger contre l'injection SQL lors de l'utilisation de SQL dynamique.
Connexe :
- Existe-t-il un moyen de définir une constante nommée dans une requête PostgreSQL ?