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

Argumenty příkazového řádku PSQL ve skriptu DO

Protože PL bloky jsou ve skutečnosti textové konstanty v kódu, vnitřní proměnné se v nich nenahrazují obvyklým způsobem. Naštěstí je možné použít proměnné session pro sdílení dat mezi různými SQL/PL bloky:

set foo.bar to :v1; -- Name should contains the dot, don't ask me why 
show foo.bar; -- Check that the value was assigned 
do $$
declare
  myvar text := current_setting('foo.bar');
begin
  raise info '%', myvar; -- Output variable value
end $$;

Chcete-li zajistit, že je proměnná přiřazena, a pokud tomu tak není, nastavte výchozí hodnotu:

\if :{?v1}
  set foo.bar to :v1;
\else
  set foo.bar to 'default';
\endif

Další podrobnosti:
https://www.postgresql.org/docs/current/app-psql.html#PSQL-METACOMMAND-IFhttps://www.postgresql.org/docs/current/app-psql.html #APP-PSQL-INTERPOLATION



  1. Průvodce Pgpool pro PostgreSQL:Část druhá

  2. SELECT INTO proměnnou tabulky v T-SQL

  3. Jak povolit automatické opětovné připojení klienta MySQL k MySQLdb?

  4. Vyberte Hromadný sběr do příkladu Oracle