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

UPDATE Mesma linha após UPDATE no gatilho


Você não pode atualizar linhas na tabela em um depois gatilho de atualização.

Talvez você queira algo assim:
CREATE TRIGGER `records_integrity` BEFORE UPDATE
ON `records`
FOR EACH ROW
    SET NEW.epc=IFNULL(new.earnings/new.clicks, 0);

EDITAR:

Dentro de um gatilho, você tem acesso a OLD e NEW . OLD são os valores antigos no registro e NEW são os novos valores. Em um antes gatilho, o NEW os valores são o que são gravados na tabela, para que você possa modificá-los. Em um depois gatilho, o NEW valores já foram escritos, então eles não podem ser modificados. Acho que a documentação do MySQL explica isso muito bem.