bob*_*obo 7 mysql stored-procedures stored-functions
无论我到哪里,看起来MySQL存储过程都可以进行交易.然而,当我声明我的存储函数时
create function test( a int )
returns int
MODIFIES SQL DATA
BEGIN
START TRANSACTION ;
update t set col='some value' where id=a ;
COMMIT ;
return 0 ;
END //
Run Code Online (Sandbox Code Playgroud)
我明白了
错误代码:1422.存储函数或触发器中不允许显式或隐式提交.
bob*_*obo 11
实际上,您不允许在存储函数内进行事务处理.您只能在存储过程中进行事务处理.
create procedure test( a int )
MODIFIES SQL DATA
BEGIN
START TRANSACTION ;
update t set col='some value' where id=a ;
COMMIT ;
END //
Run Code Online (Sandbox Code Playgroud)
要从SP返回值,请使用输出参数或使用SP中最后一个select语句的结果集.
| 归档时间: |
|
| 查看次数: |
25142 次 |
| 最近记录: |