我创建了此触发器,并且它仅在第一次调用存储过程。我希望能够仅通过一个操作创建多个日志,这就是为什么我想多次调用“ InsertLog”。
CREATE
DEFINER=`root`@`localhost`
TRIGGER `mydb`.`Cultura_AFTER_INSERT`
AFTER INSERT ON `mydb`.`Cultura`
FOR EACH ROW
BEGIN
DECLARE idOperação INT;
DECLARE operação VARCHAR(6);
DECLARE tabela VARCHAR(50);
DECLARE idObjecto VARCHAR(50);
DECLARE coluna VARCHAR(50);
DECLARE valor VARCHAR(300);
SELECT MAX(idOperação) + 1 INTO idOperação FROM Log;
IF idOperação IS NULL THEN
SET idOperação = 1;
END IF;
SET operação = "INSERT";
SET tabela = "Cultura";
SET idObjecto = CAST(new.id AS CHAR);
IF (new.Email <> NULL) THEN
SET coluna = 'Email';
SET valor = new.Email;
CALL InsertLog(idOperação, operação, tabela, idObjecto, coluna, valor);
END IF;
IF (new.Nome <> NULL) THEN
SET coluna = 'Nome';
SET valor = new.Nome;
CALL InsertLog(idOperação, operação, tabela, idObjecto, coluna, valor);
END IF;
IF (new.Descrição <> NULL) THEN
SET coluna = 'Descrição';
SET valor = new.Descrição;
CALL InsertLog(idOperação, operação, tabela, idObjecto, coluna, valor);
END IF;
END