Ir ao conteúdo
  • Cadastre-se
Gabriel Sassaki

PostgreSQL Variáveis com Select no PostgreSQL

Recommended Posts

Boa tarde a todos, estou com um probleminha e ainda não consegui resolver.

 

tenho um função criada em uma tabela no postgres e um trigger para acionar essa função mas, algo não está funcionando, testei as partes isoladas da função e funcionam bem mas, como um todo não, poderiam me ajudar por favor?

 

Segue o código:

Function:

 

create function calculo()
returns trigger
as $calculo$
declare
FolhasOld int;
IdFolhasOld int;
FolhasNew int;
calculo int;
begin
    FolhasOld = (SELECT OLDSHEET FROM TRANSICAO WHERE ID_IMPRESSORA_TONER = 7 ORDER by IDTRANSICAO DESC LIMIT 1);
    IdFolhasOld = (SELECT IDTRANSICAO FROM TRANSICAO WHERE ID_IMPRESSORA_TONER = 7 ORDER by IDTRANSICAO DESC LIMIT 1 OFFSET 1);
    FolhasNew = (SELECT FOLHAS FROM TRANSICAO WHERE ID_IMPRESSORA_TONER = 7 ORDER by IDTRANSICAO DESC LIMIT 1);
    calculo = FolhasNew - FolhasOld;
    
    update transicao
    set folhasnew = calculo
    where IDTRANSICAO = IdFolhasOld;
    
    return null;
end;
$calculo$
language plpgsql;

 

Trigger:

 

create trigger calculo
after insert on transicao
for each row
execute procedure calculo();

 

Não sei se de repente eu perdi ou esqueci de alguma coisa.

Desde já agradeço imenso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia a todos,

 

Consegui resolver esse problema somente acrescentando o "offset 1" também ao select do FolhasOld, e trocando = po := nas outras variáveis, ficando assim:

FolhasOld := (SELECT OLDSHEET FROM TRANSICAO WHERE ID_IMPRESSORA_TONER = 7 ORDER by IDTRANSICAO DESC LIMIT 1 OFFSET 1);

 

Muito Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×