sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo se usan las variables de script en psql?

Las variables de Postgres se crean mediante el comando \set, por ejemplo...

\set myvariable value

... y luego se puede sustituir, por ejemplo, como ...

SELECT * FROM :myvariable.table1;

... o ...

SELECT * FROM table1 WHERE :myvariable IS NULL;

editar:a partir de psql 9.1, las variables se pueden expandir entre comillas como en:

\set myvariable value 

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

En versiones anteriores del cliente psql:

... Si desea utilizar la variable como valor en una consulta de cadena condicional, como ...

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

... entonces debe incluir las comillas en la variable en sí, ya que lo anterior no funcionará. En su lugar, defina su variable como tal ...

\set myvariable 'value'

Sin embargo, si, como yo, se encuentra con una situación en la que desea crear una cadena a partir de una variable existente, encontré que el truco es este...

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

¡Ahora tiene una variable entre comillas y una sin comillas de la misma cadena! Y puedes hacer algo como esto....

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