Por esses dias precisei criar uma função no Postgres, e em determinada parte precisei popular duas variáveis de uma mesma query. Porém, não queria executar esta mesma query duas vezes para popular minhas variáveis.
Usualmente seria:
CREATE OR REPLACE FUNCTION funcao(codigo integer) RETURNS SETOF character varying AS $BODY$ DECLARE variavel int; variavel2 int; BEGIN --ATRIBUINDO A VARIÁVEL 1 select into variavel campo_tabela from tabela where campo = codigo; --ATRIBUINDO A VARIÁVEL 2 select into variavel2 campo_tabela2 from tabela where campo = codigo; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100 ROWS 1000; ALTER FUNCTION funcao(integer) OWNER TO postgres;
Para popular várias de uma só vez, basta trazer as variáveis e em seguida na mesma ordem os campos das tabelas:
... select into variavel, variavel2 campo_tabela, campo_tabela2 from tabela where campo = codigo; ...
Até…
Anúncios