Em um ambiente de banco de dados Oracle 11g ideal, foram criadas duas ta...

Em um ambiente de banco de dados Oracle 11g ideal, foram criadas duas tabelas por meio das instruções PL/SQL a seguir: CREATE TABLE orders (order_id NUMBER P...


Em um ambiente de banco de dados Oracle 11g ideal, foram criadas duas tabelas por meio das instruções PL/SQL a seguir: 

CREATE TABLE orders (order_id NUMBER PRIMARY KEY, line_items_count NUMBER DEFAULT 0 ); CREATE TABLE lineitems (order_id REFERENCES orders, seq_no NUMBER, CONSTRAINT lineitems PRIMARY KEY(order_id,seq_no) );

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

Utilizamos cookies e tecnologias semelhantes para aprimorar sua experiência. Política de Privacidade.