No exercício, pede para toda vez que a tabela clientes for modificada, atualize as idades de todos . Com isso eu criei uma trigger que quando fizer alguma inserção, alteração ou deletar, da um update e atualiza todas as idades dos clientes. Mas quando fui rodar, tive o seguinte erro :
Can't update table 'clientes' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
. Aí fui pesquisar e descobri que não conseguimos definir updates nos gatilhos. Então foi por esse motivo que o exercício tem essa solução?:
DELIMITER //
CREATE TRIGGER TG_CLIENTES_IDADE_INSERT BEFORE INSERT ON CLIENTES
FOR EACH ROW
BEGIN
SET NEW.IDADE = timestampdiff(YEAR, NEW.DATA_NASCIMENTO, NOW());
END//
Pois eu reparei que esse código não altera todos os registros.