在 MySQL 中,当启用自动提交模式时,对数据库的每个修改操作都会被认为是一个单独的事务。也就是说,每个操作都是单独地完成并且立即提交到数据库中,而不是等到所有的操作都完成后再一次性提交。
但是有些情况下,我们需要进行多个操作作为一个整体来处理。这时候我们就需要显示地开启一个事务,这样在所有操作都执行完毕后,我们可以选择要么提交事务,要么回滚所有更改。在MySQL中,我们可以使用以下命令隐式开启事务:
START TRANSACTION;
当事务执行成功后,我们可以使用以下命令提交事务:
COMMIT;
如果事务执行失败了,我们可以使用以下命令回滚所有更改:
ROLLBACK;
当然,在开始编写包含事务的SQL语句之前,我们需要确认安装和启用了InnoDB 存储引擎。如果你使用的是MyISAM存储引擎,那么你将无法使用事务。
在MySQL的 InnoDB 存储引擎中,事务是自动开启的。只有在出现错误或者ROLLBACK语句时才会隐式开启一个事务。可以使用以下语句来查询当前是否已经开启事务:
SELECT @@autocommit;
如果结果为1,表示自动提交模式已经开启。如果结果为0,则表示当前已经开启了事务。
在MySQL中,事务的处理是非常重要的。我们必须小心地处理事务,以便确保我们的数据是安全的。