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 时,不允许在触发器或存储函数中使用该语句。
这包括由触发器或函数调用的存储过程中的语句 -- 这里没有使无效操作更有效的抽象层。
我需要在触发器中调用修改 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 时,不允许在触发器或存储函数中使用该语句。
这包括由触发器或函数调用的存储过程中的语句 -- 这里没有使无效操作更有效的抽象层。