mysql:在触发器中使用一个过程

时间:2017-06-13 09:02:12

标签: mysql triggers procedures

我需要调用一个修改触发器内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中运行吗? 我知道整个事情听起来很奇怪/可怕但这是我的应用程序了解某些内容已被删除的方式。

1 个答案:

答案 0 :(得分:0)

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

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