如何手动开启事物并提交
在MySQL中,可以使用 START TRANSACTION 或 BEGIN 来开启一个事务,然后使用COMMIT来提交事务,或者使用ROLLBACK来撤销事务(下面是一个简单的示例)。
首先,连接到MySQL数据库(可以使用任意MySQL客户端工具)。
连接到数据库后,输入下面的命令来开启一个新的事务:
BEGIN;
-- 或
START TRANSACTION;
接下来就可以执行任意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;
所有的变更确认都没问题之后,就可以执行 COMMIT 命令将在事务中执行的操作保存到数据库中:
COMMIT;
但如果在事务中执行了一些更改操作存在问题(如意外删除了其他数据),还可以使用 ROLLBACK 语句来撤销该事务,将数据库恢复到事务开始之前的状态:
ROLLBACK;
题外话
在MySQL中,开启事务的命令 BEGIN、START TRANSACTION 除了单词不同,没有任何区别(只是为了兼容不同数据库规范而已),都用于标识一个事务的开始。
但需要注意的是,在执行 BEGIN 或 START TRANSACTION 命令后,并不表示事务已经启动,而是在执行完它们后的第一个SQL语句,才表示事务真正启动。
事务启动后,如果只执行了一个SQL语句(如 SELECT),这个事务就会一直处于持续存在状态。直到主动执行 COMMIT、ROLLBACK 语句,或者连接断开 session 连接才表示事物终止。