PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

PostgreSQL - Função com variáveis ​​locais - Referência de coluna é ambígua


Qualquer variável local pode ser qualificada pelo rótulo do bloco
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

Normalmente, todas as variáveis ​​locais de conflito possíveis têm prefixo - o prefixo comum é _ .