我想对生产数据库和更新的小开发人员运行更新查询,以使其尽可能安全。我正在做以下事情
BEGIN TRANSACTION UPDATE table_x SET col_y = 'some_value' . . . IF (@@error <> 0) BEGIN ROLLBACK END ELSE BEGIN COMMIT END
上面的代码应该可以在SQL Server中工作,但是我需要针对MySQL数据库进行工作。
编辑:对不起,有多个要执行的语句。是的,我知道不需要在事务中包装单个查询。
我认为这没有必要,因为存在隐式提交/回滚的概念。
从MySQL文档:
默认情况下,MySQL在启用了自动提交模式的情况下为每个新连接启动会话,因此,如果该SQL语句未返回错误,则MySQL在每个SQL语句之后执行一次提交。如果一条语句返回错误,则提交或回退行为取决于该错误。请参见第13.6.13节“ InnoDB错误处理”。