Pular para o conteúdo principal

Questão de Banco de Dados — MySQL — Pró-Reitoria GP CP2 2022

Banco de DadosMySQL
Código
qa316718
Banca
Pró-Reitoria GP CP2
Órgão
CP II
Ano
2022
Cargo
Tec ( )

Dada esta sequência de comandos SQL no MySQL:

 

CREATE TABLE Produto
(
                id                     int PRIMARY KEY,
                Descricao        VARCHAR(50) UNIQUE,
                Estoque           int NOT NULL DEFAULT 0
);

INSERT INTO Produto VALUES (1, 'parafuso', 100);
INSERT INTO Produto VALUES (2, 'bucha', 50);
INSERT INTO Produto VALUES (3, 'prego', 150);

CREATE TABLE ItensVenda
(
               idVenda           INT,
               idProduto         int,
               Quantidade      INT
);

DELIMITER $
CREATE TRIGGER Tgr_ItensVenda_Insert AFTER INSERT
ON ItensVenda
FOR EACH ROW
BEGIN
             UPDATE Produto SET Estoque = Estoque - NEW.Quantidade
WHERE id = NEW.idProduto;
END$


CREATE TRIGGER Tgr_ItensVenda_Delete AFTER DELETE
ON ItensVenda
FOR EACH ROW
BEGIN
                UPDATE Produtos SET Estoque = Estoque + OLD.Quantidade
WHERE id = OLD.idProduto;
END$
DELIMITER ;

INSERT INTO ItensVenda VALUES (1, 1,30);
INSERT INTO ItensVenda VALUES (1, 2,10);
INSERT INTO ItensVenda VALUES (1, 3,50);

DELETE FROM ItensVenda WHERE idVenda = 1 AND idProduto = 1;

 

Após ser feita a consulta (select * from Produto), os dados da tabela Produto serão

  1. Aid Descrição Estoque 1 Parafuso 100 2 Bucha 40 3 Prego 100
  2. Bid Descrição Estoque 1 Parafuso 100 2 Bucha 50 3 Prego 150
  3. Cid Descrição Estoque 1 Parafuso 130 2 Bucha 50 3 Prego 150
  4. Did   Descrição Estoque 1 Parafuso 130 2 Bucha 40 3 Prego 100
Revelar gabarito e comentário

GabaritoA — id Descrição Estoque 1 Parafuso 100 2 Bucha 40 3 Prego 100

Link permanente: /questoes/qa316718