sql >> Databasteknik >  >> RDS >> PostgreSQL

PostgreSQL - Funktion med lokala variabler - Kolumnreferens är tvetydig

Vilken lokal variabel som helst kan kvalificeras med blocketikett

create table foo(a integer);
insert into foo values(10);

do $$
<<mylabel>>
declare
  a int default 5;
  r record;
begin
  select foo.a into r
    from foo
    where foo.a = mylabel.a + 5;
  raise notice '%', r.a;
end;
$$;
NOTICE:  10
DO

Vanligtvis har alla möjliga lokala konfliktvariabler prefix - vanligt prefix är _ .



  1. Problem med PHP och Mysql UTF-8 (Special Character)

  2. Hur man korrekt gör en offentlig synonym

  3. MySQL:ALTER IGNORE TABLE ger brott mot integritetsbegränsningar

  4. SQL Server Databas Size Growth med hjälp av Backup-historik