Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
bom dia, estou com uma tarefa que essa a questao
3. Crie um trigger que desabilite um produto (utilizando a coluna proativo), caso prosaldo deste
produto seja atualizado para 0 (zero).
proativo se for 1 ta ativo e 0 ta desativado
tivemos uma aula rapida sobre trigger, e esse e o trigger que estou tentando fazer ele cria mas nao execulta
delimiter #
create trigger tg_desabilitar_produto after insert on produto
for each row
begin
update produto
set proativo=proativo -1
where prosaldo = NEW.prosaldo;
a tabela produto
procodigo
pronome
procusto
propreco
proativo
progrpcodigo
prosaldo
proforcnpj
>
Como é um exercício só vou te dar dicas ....
1) a trigger tem de sr disparada no update também
2) a condição de ativo depende do saldo chegar a zero
Ola sr motta, boa tarde no caso da sua dica irei usar um if?
e sobre a primeira irei pesquisar sobre disparar no update
e tambem da muito essa msg
Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint fails (bd_sinf22n.itemvenda, CONSTRAINT itemvenda_ibfk_2 FOREIGN KEY (itvprocodigo) REFERENCES produto (procodigo))
tentei fazer assim
create trigger tg_desabilitar_produto after update on produto
for each row
begin
if new.prosaldo =0 then
update produto
set proativo=0
where prosaldo = new.prosaldo;
end if;QUASE ....
create trigger tg_desabilitar_produto BEFORE UPDATE on produto
for each row
begin
if new.prosaldo =0 then NEW.proativo=0
end#
delimiter ;
pode ter algum erro de síntaxe ainda
bom até o prof errou porque os exemplos que ele passou nao batia com o exercicio pedido entao ele ajudou a gente a fazer e ficou assim, funfando 100% com esse código estamos inserindo os resultados na tabela chamada produtodesativados
reate trigger tg_desabilitar_produto before update on produto
for each row
begin
if new.proativo<> old.proativo and old.proativo =1 then
insert into produtodesativados
values (new.procodigo );
end if;delimiter ;
update produtoif new.proativo<> old.proativo and old.proativo =1 then <-- nesse caso aki só vai inserir na tabela produtosdesativados se o novo for diferente do antigo e o antigo tem que estar 1 porque 1 ele esta ativado, nao dando para desativar algo que ja esta desativado.
pode fechar e muito obrigado pessoal (:
Como é um exercício só vou te dar dicas ....
1) a trigger tem de sr disparada no update também
2) a condição de ativo depende do saldo chegar a zero