我需要调用一个修改触发器内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 ;
似乎语法正确但是当我启动删除时出现此错误
错误1445(HY000):不允许从存储的函数或触发器设置自动提交
所以我想我正在尝试做一个禁止的事情,这有什么办法可以在mysql中运行吗? 我知道整个事情听起来很奇怪/可怕但这是我的应用程序了解某些内容已被删除的方式。
答案 0 :(得分:0)
执行语句would cause an implicit commit of the current transaction时,在触发器或存储函数中不允许该语句。
这包括由触发器或函数调用的存储过程中的语句 - 这里没有抽象层使得无效操作更有效。