mysql: 在触发器中使用过程

mysql: use a procedure inside a trigger

我需要在触发器中调用修改 root 密码的过程。 这是程序

delimiter //
create procedure foobar ()
begin SET PASSWORD FOR 'root'@'localhost' = 'foobar';
end//
delimiter ;

这就是触发器

delimiter //
create trigger rootpass
after delete on map
for each row
begin
call foobar;
end //
delimiter ;

语法似乎是正确的,但是当我启动删除时出现此错误

ERROR 1445 (HY000): Not allowed to set autocommit from a stored function or trigger

所以我想我正在尝试做一件被禁止的事情,有什么方法可以在 mysql 中起作用吗? 我知道整个事情听起来 weird/horrible 但这是我的应用程序了解某些内容已被删除的方式。

执行语句 would cause an implicit commit of the current transaction 时,不允许在触发器或存储函数中使用该语句。

这包括由触发器或函数调用的存储过程中的语句 -- 这里没有使无效操作更有效的抽象层。