PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как използвате скриптови променливи в psql?

Postgres променливите се създават чрез командата \set, например ...

\set myvariable value

... и след това може да бъде заменен, например, като ...

SELECT * FROM :myvariable.table1;

... или ...

SELECT * FROM table1 WHERE :myvariable IS NULL;

редактиране:От psql 9.1 променливите могат да се разширяват в кавички, както е в:

\set myvariable value 

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

В по-стари версии на psql клиента:

... Ако искате да използвате променливата като стойност в условна низова заявка, като ...

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

... тогава трябва да включите кавичките в самата променлива, тъй като горното няма да работи. Вместо това дефинирайте вашата променлива като такава ...

\set myvariable 'value'

Ако обаче, като мен, сте попаднали в ситуация, в която искате да направите низ от съществуваща променлива, открих, че трикът е този ...

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

Сега имате както променлива в кавички, така и без кавички от един и същ низ! И можете да направите нещо подобно ....

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. Най-добри практики за регистриране на одит на PostgreSQL

  2. Как да управлявам db връзки на сървъра?

  3. PostgreSQL Connection Pooling:Част 4 – PgBouncer срещу Pgpool-II

  4. Възстановяване на архивен файл на postgres с помощта на командния ред?

  5. Как да създадете потребител/база данни в скрипт за Docker Postgres