Num comando de criação de um trigger no MySQL, nas recentes edições, há um conjunto de elementos sintáticos que podem ser utilizados para determinar quando os procedimentos devem ser acionados e quais são esses procedimentos. As possíveis combinações de “quando x procedimento” válidas para triggers de transações são:
- A)AFTER/BEFORE combinados com DELETE/INSERT/UPDATE;
Correta, porque MySQL permite triggers BEFORE ou AFTER vinculados aos eventos INSERT, UPDATE e DELETE.
- B)CREATION/REMOTION combinados com READ/WRITE;
Errada, pois CREATION, REMOTION, READ e WRITE não são palavras-chave de trigger no MySQL.
- C)IN/OUT combinados com CREATION/REMOTION;
Errada, porque IN, OUT, CREATION e REMOTION não pertencem à sintaxe de triggers.
- D)INIT/END combinados com INPUT/OUTPUT;
Errada, já que INIT, END, INPUT e OUTPUT não são combinações válidas para triggers no MySQL.
- E)STARTING/FINISHING combinados com READ/ REWRITE/WRITE.
Errada, pois STARTING, FINISHING, READ, REWRITE e WRITE não representam a estrutura de trigger do MySQL.
Gabarito: A
No MySQL, trigger é um gatilho que dispara automaticamente quando ocorre um evento em uma tabela. A lógica básica da sintaxe é bem direta: você escolhe o momento em que ele vai agir e o tipo de operação que vai provocá-lo. Esses dois blocos são, justamente, o "quando" e o "procedimento" do enunciado. Em MySQL, os gatilhos podem ser definidos como BEFORE ou AFTER, e eles se relacionam com eventos de DML: INSERT, UPDATE e DELETE. Ou seja, você pode criar um trigger para atuar antes ou depois de uma inserção, atualização ou exclusão. Essa é a combinação clássica cobrada em prova e cai muito porque a banca troca os termos para confundir. Por isso, a alternativa A está correta: BEFORE/AFTER combinados com DELETE/INSERT/UPDATE. É exatamente a estrutura prevista para triggers em MySQL, conforme a documentação do sistema e a doutrina de banco de dados. Já os demais pares trazem palavras que não fazem parte da sintaxe de trigger no MySQL, parecendo mais invenção de prova do que comando de verdade. Resumo de prova: se aparecer trigger no MySQL, pense em momento (BEFORE/AFTER) + evento (INSERT/UPDATE/DELETE). Se a alternativa falar em coisas como CREATION, REMOTION, STARTING ou FINISHING, pode desconfiar sem dó.