mysql开启事务
时间: 2023-06-28 11:11:54 浏览: 54
在 MySQL 中,开启事务需要使用 `START TRANSACTION` 命令,该命令将启动一个新的事务。在事务中,你可以执行一系列的 SQL 语句,这些操作要么全部执行成功,要么全部回滚。如果事务中的任何一条语句执行失败,所有的更改将被撤消,就好像它们从未发生过一样。
例如,以下是一个示例事务:
```
START TRANSACTION;
INSERT INTO users (name, email, age) VALUES ('John', 'john@example.com', 30);
UPDATE accounts SET balance = balance - 100 WHERE user_id = 1;
COMMIT;
```
在这个示例中,我们创建了一个新的事务并执行了两个 SQL 语句:在 `users` 表中插入了一条新纪录,同时更新了 `accounts` 表中某个用户的余额。最后,我们调用 `COMMIT` 命令,将所有更改提交到数据库中。
如果在执行事务期间出现任何错误,可以使用 `ROLLBACK` 命令回滚所有更改,例如:
```
START TRANSACTION;
INSERT INTO users (name, email, age) VALUES ('John', 'john@example.com', 30);
UPDATE accounts SET balance = balance - 100 WHERE user_id = 9999; -- user_id 不存在,将导致错误
ROLLBACK;
```
在这个示例中,第二条 SQL 语句将出现错误,因为用户 ID 9999 不存在于 `accounts` 表中。当事务回滚时,所有更改都将被撤消,包括第一条插入语句。