Mysql 同一触发器中的查询和信号?
我尝试在MySql(5.7.21)中通过约束测试创建一个带有触发器的日志系统: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
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?