Como usar if em gatilho no MySQL
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
Curtidas 0
Respostas
Vagner Almeida
09/05/2012
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
GOSTEI 0