Mysql 同一触发器中的查询和信号?

Mysql 同一触发器中的查询和信号?,mysql,triggers,Mysql,Triggers,我尝试在MySql(5.7.21)中通过约束测试创建一个带有触发器的日志系统: CREATE TRIGGER `before_insert_grp` BEFORE INSERT ON `grp` FOR EACH ROW BEGIN IF NEW.grp_n_entree > 50 THEN INSERT INTO logs (logs_d_date, logs_v_message) VALUES (NOW(), 'Entrées su

我尝试在MySql(5.7.21)中通过约束测试创建一个带有触发器的日志系统:

CREATE TRIGGER `before_insert_grp` 
BEFORE INSERT ON `grp`
FOR EACH ROW 
BEGIN
IF 
     NEW.grp_n_entree > 50
THEN        
   INSERT INTO logs (logs_d_date, logs_v_message)  
      VALUES (NOW(), 'Entrées supérieures à 50'); 

    SIGNAL SQLSTATE '45000' 
   SET MESSAGE_TEXT = 'Entrées supérieures à 50';
END IF;
END;
它在logs表中运行signal而不是insert查询。我添加了SIGNAL命令,因为触发器中的查询不起作用:不向logs表中插入,但向grp表中插入done

有什么想法吗?谢谢


PS:我在PhpMyAdmin(最新版本)中运行这个

确保使用MyISAM存储引擎创建表
日志


如果表使用InnoDB存储引擎,则触发器执行的插入将在抛出错误(SQLSTATE>'02')时回滚。(也就是说,触发器中的INSERT不是作为自治事务执行的,它会终止,就像抛出异常时调用语句终止一样。)

表日志是否可能是MyISAM中的InnoDB和grp?