PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak używać zmiennych skryptowych w psql?

Zmienne Postgresa są tworzone za pomocą polecenia \set, na przykład...

\set myvariable value

... i można go następnie zastąpić, na przykład jako ...

SELECT * FROM :myvariable.table1;

... lub ...

SELECT * FROM table1 WHERE :myvariable IS NULL;

edit:Od psql 9.1 zmienne mogą być rozwijane w cudzysłowie, jak w:

\set myvariable value 

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

W starszych wersjach klienta psql:

... Jeśli chcesz użyć zmiennej jako wartości w warunkowym zapytaniu łańcuchowym, takim jak ...

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

... wtedy musisz uwzględnić cudzysłowy w samej zmiennej, ponieważ powyższe nie zadziała. Zamiast tego zdefiniuj swoją zmienną jako taką ...

\set myvariable 'value'

Jeśli jednak, tak jak ja, natknąłeś się na sytuację, w której chciałeś utworzyć ciąg z istniejącej zmiennej, znalazłem sztuczkę w tym...

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

Teraz masz zarówno zmienną w cudzysłowie, jak i bez cudzysłowów tego samego łańcucha! I możesz zrobić coś takiego ....

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak utworzyć pojedynczy punkt końcowy dla konfiguracji replikacji PostgreSQL za pomocą HAProxy?

  2. Zainstaluj pdo dla postgres Ubuntu

  3. Zoptymalizuj zakres zapytań sygnatury czasowej Postgres

  4. Błąd gniazda Postgresql w OSX 10.7.3 podczas uruchamiania syncdb Django

  5. Znajdź wiersze, w których tablica tekstowa zawiera wartość podobną do input