Foi criada, relacionada às tabelas, a seguinte trigger, colocada em execução:
CREATE OR REPLACE TRIGGER lineitems_trigger AFTER INSERT OR UPDATE OR DELETE ON lineitems FOR EACH ROW BEGIN IF (INSERTING OR UPDATING) THEN UPDATE orders SET line_items_count = NVL(line_items_count,0)+1 WHERE order_id = :new.order_id; END IF; IF (DELETING OR UPDATING) THEN UPDATE orders SET line_items_count = NVL(line_items_count,0)-1 WHERE order_id = :old.order_id; END IF; END; / Em seguida, foram executadas as instruções abaixo, nesta ordem: INSERT INTO orders (order_id) VALUES (78); INSERT INTO orders(order_id) VALUES (92); INSERT INTO lineitems (order_id, seq_no) VALUES (78,1); INSERT INTO lineitems (order_id, seq_no) VALUES (78,2); SELECT * FROM orders;
Considere:
I. Ao executar a instrução INSERT INTO orders (order_id) VALUES (78); a trigger incrementou o valor contido no campo line_items_count passando de 0 para 1.
II. Ao executar a instrução INSERT INTO lineitems (order_id, seq_no) VALUES (78,1); a trigger incrementou o valor contido no campo line_items_count da tabela orders passando de 0 para 1.
III. Ao executar a instrução INSERT INTO lineitems (order_id, seq_no) VALUES (78,2); a trigger incrementou o valor contido no campo line_items_count da tabela orders passando de 1 para 2.
IV. A instrução SELECT * FROM orders; mostrará no campo line_items_count da linha cujo order_id é 78 o valor 3.
Está correto o que consta APENAS em
Autenticação
Limite Diário Atingido
Você atingiu o limite de 10 questões diárias para usuários sem plano. Ao se tornar um membro, você poderá:
Resolver mais questões e melhorar seu desempenho.
Acessar conteúdo exclusivo da IAProvatec.
Potencializar seus estudos com estatísticas avançadas.
Que tal se tornar um membro agora e aproveitar todos os recursos da plataforma?