跳到主要内容

如何手动开启事物并提交

在MySQL中,可以使用 START TRANSACTIONBEGIN 来开启一个事务,然后使用COMMIT来提交事务,或者使用ROLLBACK来撤销事务(下面是一个简单的示例)。

1.1. 首先,连接到MySQL数据库(可以使用任意MySQL客户端工具)。

2.2. 连接到数据库后,输入下面的命令来开启一个新的事务:

BEGIN;
-- 或
START TRANSACTION;

3.3. 接下来就可以执行任意SQL语句。例如,插入、更新或删除:

-- 插入
INSERT INTO your_table (column1, column2) VALUES ('value1', 'value2');

-- 更新
UPDATE your_table SET column1 = 'new_value' WHERE condition;

-- 删除
DELETE FROM your_table WHERE condition;

4.4. 所有的变更确认都没问题之后,就可以执行 COMMIT 命令将在事务中执行的操作保存到数据库中:

COMMIT;

5.5. 但如果在事务中执行了一些更改操作存在问题(如意外删除了其他数据),还可以使用 ROLLBACK 语句来撤销该事务,将数据库恢复到事务开始之前的状态:

ROLLBACK;
题外话

在MySQL中,开启事务的命令 BEGINSTART TRANSACTION 除了单词不同,没有任何区别(只是为了兼容不同数据库规范而已),都用于标识一个事务的开始。

但需要注意的是,在执行 BEGINSTART TRANSACTION 命令后,并不表示事务已经启动,而是在执行完它们后的第一个SQL语句,才表示事务真正启动。

事务启动后,如果只执行了一个SQL语句(如 SELECT),这个事务就会一直处于持续存在状态。直到主动执行 COMMITROLLBACK 语句,或者连接断开 session 连接才表示事物终止。