FC ConcursosFC Concursos

Questão FC372986

Considere o seguinte código exemplo escrito em MySQL: CREATE TRIGGER antes_de_Inserir_conta BEFORE (I) contas FOR EACH ROW (II) IF NEW. saldo < 0 THEN SIGNAL SQLSTATE '45000' SET M

Sistema de Gerenciamento de Banco de Dados (SGBD)

FCC · 2024

Considere o seguinte código exemplo escrito em MySQL:


CREATE TRIGGER antes_de_Inserir_conta
BEFORE (I) contas
FOR EACH ROW
(II)
  IF NEW. saldo < 0 THEN
      SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Saldo não pode ser negativo”,
  END IF;
END;

 

As lacunas I e II são preenchidas, coem respectivamente, por

  1. START - INSERT ON contas
  2. START ON - BEGIN
  3. INSERT ON - BEGIN
  4. INSERT AT - START
  5. BEGIN - INSERT ON contas
Mostrar resposta e comentário

Gabarito

Certo

Comentário do professor

A lacuna (I) deve ser preenchida por INSERT ON porque a declaração completa do trigger fica: BEFORE INSERT ON contas FOR EACH ROW. Isso indica que o gatilho será executado antes de cada operação de inserção na tabela contas, permitindo validar os valores que estão sendo introduzidos.

A lacuna (II) recebe BEGIN porque o corpo do trigger contém mais de uma instrução (o bloco IF ... END IF e o SIGNAL). Em MySQL, para agrupar múltiplas instruções em um trigger é necessário um bloco composto iniciado por BEGIN e terminado por END.

Dentro do bloco, usa‑se NEW.saldo para acessar o valor que está sendo inserido e o comando SIGNAL SQLSTATE '45000' para abortar a operação com mensagem personalizada caso o saldo seja negativo, impedindo a inserção indevida.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo