一尘不染

MySQL中SQL Server的@@ error是否有等​​效项

mysql

我想对生产数据库和更新的小开发人员运行更新查询,以使其尽可能安全。我正在做以下事情

BEGIN TRANSACTION
    UPDATE table_x SET col_y = 'some_value'
    .
    .
    .
IF (@@error <> 0)
BEGIN
    ROLLBACK
END
ELSE
BEGIN
    COMMIT
END

上面的代码应该可以在SQL Server中工作,但是我需要针对MySQL数据库进行工作。

编辑:对不起,有多个要执行的语句。是的,我知道不需要在事务中包装单个查询。


阅读 457

收藏
2020-05-17

共1个答案

一尘不染

我认为这没有必要,因为存在隐式提交/回滚的概念。

MySQL文档

默认情况下,MySQL在启用了自动提交模式的情况下为每个新连接启动会话,因此,如果该SQL语句未返回错误,则MySQL在每个SQL语句之后执行一次提交。如果一条语句返回错误,则提交或回退行为取决于该错误。请参见第13.6.13节“
InnoDB错误处理”。

2020-05-17