mysql中事务语句如何使用_mysql 事务语句操作方法

来源:这里教程网 时间:2026-02-28 20:25:50 作者:

在 MySQL 中,事务用于确保一组数据库操作要么全部成功执行,要么全部不执行,从而保证数据的一致性和完整性。事务具有 ACID 特性(原子性、一致性、隔离性、持久性),常用于处理涉及多表或多步骤的关键业务逻辑。

开启事务

使用 BEGINSTART TRANSACTION 来显式开启一个事务:

START TRANSACTION;
-- 或者
BEGIN;

提交事务

当所有 SQL 语句执行成功后,使用 COMMIT 将更改永久保存到数据库:

COMMIT;

例如:

START TRANSACTION;
UPDATE account SET balance = balance - 100 WHERE user_id = 1;
UPDATE account SET balance = balance + 100 WHERE user_id = 2;
COMMIT;

回滚事务

如果中间出现错误或需要取消操作,可以使用 ROLLBACK 回退到事务开始前的状态:

ROLLBACK;

例如:

START TRANSACTION;
INSERT INTO orders (user_id, amount) VALUES (1, 200);
UPDATE inventory SET stock = stock - 1 WHERE item_id = 10;
-- 假设库存不足,触发异常
ROLLBACK;

自动提交模式

MySQL 默认开启自动提交(autocommit = 1),即每条 SQL 语句都会被立即提交。要手动控制事务,需关闭自动提交:

SET autocommit = 0;

关闭后,所有语句将在当前事务中执行,直到遇到 COMMIT 或 ROLLBACK 才会结束事务。

事务的注意事项

事务只对支持事务的存储引擎有效,如 InnoDB。MyISAM 不支持事务。 避免长时间持有事务,否则可能导致锁等待或性能下降。 在应用程序中建议结合 try-catch 使用事务,出错时进行回滚。 可设置保存点(SAVEPOINT)实现部分回滚:

SAVEPOINT sp1;
-- 执行某些操作
ROLLBACK TO sp1;

基本上就这些。合理使用事务能有效保障数据安全,特别是在处理金融交易、订单系统等场景中尤为重要。

相关推荐

热文推荐