这是我在这里发表的第一篇文章! =]
我正在创建一个触发器,以便在每次有人尝试从表中删除某些内容时插入日志表
CREATE DEFINER=`root`@`localhost` TRIGGER `user_before_delete`
BEFORE DELETE ON `user` FOR EACH ROW BEGIN
INSERT INTO log_alert(id, table_id, name)
VALUES('99002', OLD.id, OLD.name);
SIGNAL SQLSTATE '99002'
SET MESSAGE_TEXT = 'TRYING TO REMOVE A USER!'
END
但问题是: SIGNAL SQLSTATE 回滚整个操作! 那么,如何在日志表上插入并防止删除用户?
最佳答案
Marc B 解决方法对我有用 =]
quick/dirty workaround: change log_alert to be a myisam table. no transactions there, so no way to roll back your insert. – Marc B 15 hours ago
只需将log_alert更改为MyISAM类型,INSERTS就不会再回滚
关于MySQL触发器: INSERT ON log BEFORE DELETE ON table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28285859/