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
- START - INSERT ON contas
- START ON - BEGIN
- INSERT ON - BEGIN
- INSERT AT - START
- 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