Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Problema no gatilho do MYSQL


O problema é que você não pode modificar a tabela que invocou esse gatilho. É uma restrição.

Tente usar um gatilho BEFORE INSERT e defina novos valores antes de inserir os dados. Por exemplo:
CREATE TRIGGER anomes
BEFORE INSERT
ON formulario
FOR EACH ROW
BEGIN
  SET NEW.ano = EXTRACT(year FROM NEW.create_date);
  SET NEW.mes = EXTRACT(month FROM NEW.create_date); 
END

E a pergunta - por que você vai armazenar esses dados na tabela? Você pode calculá-lo rapidamente na consulta SELECT.