Fórum Como usar if em gatilho no MySQL #416469
09/05/2012
0
Olá pessoal!
Estou migrando do FireBird para o MySQL e estou tomando uma surra grande.
Estou criando um gatilho para atualizar a tabela estoque e a tabela lote.
Estou criando um gatilho na tabela de entradaItens01, e nesse gatilho (ENTITENS01_BI) quero fazer algo desse tipo:
IF (new.qtd_ate > 0) THEN
BEGIN
update estoque01 set estq_atual = estq_atual + new.qtd_ate where produto = old.produto;
if ((new.lote <> ) or (new.lote not is null)) and ((new.validade <> ) or (new.validade not is null)) then
begin
if (select estoque from lote01 where produto = old.produto and lote = new.lote) = null then
insert into lote01 (codigo, produto,lote,validade,estoque)
values (0, old.produto,new.lote,new.validade,new.qtd_ate)
else
update lote01 set validade = new.validade, estoque = ifnull(estoque,0) + new.qtd_ate
where produto = old.produto and lote = new.lote;
end
END
ELSE
BEGIN
mesmas funções, mas decrementando o valor na tabela estoque e lote
END
Estou migrando do FireBird para o MySQL e estou tomando uma surra grande.
Estou criando um gatilho para atualizar a tabela estoque e a tabela lote.
Estou criando um gatilho na tabela de entradaItens01, e nesse gatilho (ENTITENS01_BI) quero fazer algo desse tipo:
IF (new.qtd_ate > 0) THEN
BEGIN
update estoque01 set estq_atual = estq_atual + new.qtd_ate where produto = old.produto;
if ((new.lote <> ) or (new.lote not is null)) and ((new.validade <> ) or (new.validade not is null)) then
begin
if (select estoque from lote01 where produto = old.produto and lote = new.lote) = null then
insert into lote01 (codigo, produto,lote,validade,estoque)
values (0, old.produto,new.lote,new.validade,new.qtd_ate)
else
update lote01 set validade = new.validade, estoque = ifnull(estoque,0) + new.qtd_ate
where produto = old.produto and lote = new.lote;
end
END
ELSE
BEGIN
mesmas funções, mas decrementando o valor na tabela estoque e lote
END
Vagner Almeida
Curtir tópico
+ 0
Responder
Posts
09/05/2012
Vagner Almeida
Olá pessoal!
Estou migrando do FireBird para o MySQL e estou tomando uma surra grande.
Estou criando um gatilho para atualizar a tabela estoque e a tabela lote.
Estou criando um gatilho na tabela de entradaItens01, e nesse gatilho (ENTITENS01_BI) quero fazer algo desse tipo:
IF (new.qtd_ate > 0) THEN
BEGIN
update estoque01 set estq_atual = estq_atual + new.qtd_ate where produto = old.produto;
if ((new.lote <> ) or (new.lote not is null)) and ((new.validade <> ) or (new.validade not is null)) then
begin
if (select estoque from lote01 where produto = old.produto and lote = new.lote) = null then
insert into lote01 (codigo, produto,lote,validade,estoque)
values (0, old.produto,new.lote,new.validade,new.qtd_ate)
else
update lote01 set validade = new.validade, estoque = ifnull(estoque,0) + new.qtd_ate
where produto = old.produto and lote = new.lote;
end
END
ELSE
BEGIN
mesmas funções, mas decrementando o valor na tabela estoque e lote
END
Estou migrando do FireBird para o MySQL e estou tomando uma surra grande.
Estou criando um gatilho para atualizar a tabela estoque e a tabela lote.
Estou criando um gatilho na tabela de entradaItens01, e nesse gatilho (ENTITENS01_BI) quero fazer algo desse tipo:
IF (new.qtd_ate > 0) THEN
BEGIN
update estoque01 set estq_atual = estq_atual + new.qtd_ate where produto = old.produto;
if ((new.lote <> ) or (new.lote not is null)) and ((new.validade <> ) or (new.validade not is null)) then
begin
if (select estoque from lote01 where produto = old.produto and lote = new.lote) = null then
insert into lote01 (codigo, produto,lote,validade,estoque)
values (0, old.produto,new.lote,new.validade,new.qtd_ate)
else
update lote01 set validade = new.validade, estoque = ifnull(estoque,0) + new.qtd_ate
where produto = old.produto and lote = new.lote;
end
END
ELSE
BEGIN
mesmas funções, mas decrementando o valor na tabela estoque e lote
END
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)