sql >> Databasteknik >  >> RDS >> PostgreSQL

Användardefinierade variabler i PostgreSQL

Postgres använder normalt inte variabler i vanlig SQL. Men du kan gör det också:

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

SELECT current_setting('foo.test');

Läs om anpassade tillval i manualen.

I PostgreSQL 9.1 eller tidigare behövde du deklarera custom_variable_classes innan du kunde använda det.

Men du kan inte EXECUTE dynamisk SQL utan PL (procedurspråk). Du skulle använda en DO kommando för att köra ad-hoc-satser (men du kan inte returnera data från det). Eller använd CREATE FUNCTION för att skapa en funktion som kör dynamisk SQL (och kan returnera data på alla tänkbara sätt).

Se till att skydda dig mot SQL-injektion när du använder dynamisk SQL.

Relaterat:

  • Finns det något sätt att definiera en namngiven konstant i en PostgreSQL-fråga?



  1. Bindande variabel till tabellnamn med cx_Oracle

  2. Hur ställer jag in en maximal körningstid för en mysql-fråga?

  3. Gör en WHERE IN på flera kolumner i Postgresql

  4. Hur man kör lagrad procedur från Laravel