sql >> Databáze >  >> RDS >> PostgreSQL

Jak používáte proměnné skriptu v psql?

Proměnné Postgresu se vytvářejí pomocí příkazu \set, například ...

\set myvariable value

... a pak může být nahrazen, například jako ...

SELECT * FROM :myvariable.table1;

... nebo ...

SELECT * FROM table1 WHERE :myvariable IS NULL;

edit:Od psql 9.1 lze proměnné rozšiřovat v uvozovkách jako v:

\set myvariable value 

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

Ve starších verzích klienta psql:

... Pokud chcete použít proměnnou jako hodnotu v podmíněném řetězcovém dotazu, jako je ...

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

... pak musíte zahrnout uvozovky do samotné proměnné, protože výše uvedené nebude fungovat. Místo toho definujte svou proměnnou jako takovou ...

\set myvariable 'value'

Pokud jste se však jako já dostali do situace, kdy jste chtěli vytvořit řetězec z existující proměnné, zjistil jsem, že trik je tento ...

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

Nyní máte proměnnou v uvozovkách i bez uvozovek stejného řetězce! A můžete udělat něco takového ....

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


  1. Proč se mi nedaří přinutit Oracle 11g spotřebovat více CPU na jeden SQL dotaz

  2. Jak zobrazit skryté položky v prohlížeči objektů VBA

  3. AT TIME ZONE – nová oblíbená funkce v SQL Server 2016

  4. Co je to vlastní runtime obrázek v Javě 9?