sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan bruger du scriptvariabler i psql?

Postgres-variabler oprettes gennem kommandoen \set, for eksempel ...

\set myvariable value

... og kan derefter erstattes, for eksempel som ...

SELECT * FROM :myvariable.table1;

... eller ...

SELECT * FROM table1 WHERE :myvariable IS NULL;

rediger:Fra og med psql 9.1 kan variabler udvides i anførselstegn som i:

\set myvariable value 

SELECT * FROM table1 WHERE column1 = :'myvariable';

I ældre versioner af psql-klienten:

... Hvis du vil bruge variablen som værdien i en betinget strengforespørgsel, såsom ...

SELECT * FROM table1 WHERE column1 = ':myvariable';

... så skal du inkludere anførselstegnene i selve variablen, da ovenstående ikke virker. Definer i stedet din variabel som sådan ...

\set myvariable 'value'

Men hvis du, ligesom jeg, løb ind i en situation, hvor du ville lave en streng ud fra en eksisterende variabel, fandt jeg tricket til at være dette ...

\set quoted_myvariable '\'' :myvariable '\''

Nu har du både en citeret og ikke-citeret variabel af samme streng! Og du kan gøre sådan noget her ....

INSERT INTO :myvariable.table1 SELECT * FROM table2 WHERE column1 = :quoted_myvariable;


  1. Oprettelse af dynamisk pivottabel med funktionen QUOTENAME

  2. SQL Server 2008 Windows Auth Login Fejl:Login er fra et domæne, der ikke er tillid til

  3. 5 fordele at nyde, når du opgraderer din database

  4. Sådan bruger du pgBackRest til at sikkerhedskopiere PostgreSQL og TimescaleDB