PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Benutzerdefinierte Variablen in PostgreSQL

Postgres verwendet normalerweise keine Variablen in einfachem SQL. Aber Sie können mach das auch:

SET foo.test = 'SELECT bar FROM baz';

SELECT current_setting('foo.test');

Lesen Sie mehr über benutzerdefinierte Optionen im Handbuch.

In PostgreSQL 9.1 oder früher mussten Sie custom_variable_classes deklarieren bevor Sie das verwenden konnten.

Sie können es jedoch nicht EXECUTE dynamisches SQL ohne PL (prozedurale Sprache). Sie würden ein DO verwenden Befehl zum Ausführen von Ad-hoc-Anweisungen (aber Sie können keine Daten davon zurückgeben). Oder verwenden Sie CREATE FUNCTION um eine Funktion zu erstellen, die dynamisches SQL ausführt (und Daten auf jede erdenkliche Weise zurückgeben kann).

Schützen Sie sich unbedingt vor SQL-Injection, wenn Sie dynamisches SQL verwenden.

Verwandte:

  • Gibt es eine Möglichkeit, eine benannte Konstante in einer PostgreSQL-Abfrage zu definieren?