MySQL事务实例分享(mysql中事物例子)

MySQL事务实例分享

在数据库管理系统中,事务是一组具有原子性、一致性、隔离性和持久性的操作。MySQL作为一种流行的关系型数据库,也支持事务处理。本文将分享一个MySQL事务的实例,包括如何创建表、如何进行事务操作、以及如何进行回滚。

1. 创建表

为了演示事务的操作,我们需要先创建一个测试表。可以通过以下SQL语句创建一个名为“students”的表,该表包含三列:ID、名字和分数。

“`sql

CREATE TABLE students (

ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,

name VARCHAR(30) NOT NULL,

score INT(10) NOT NULL,

PRIMARY KEY (ID)

) ENGINE=InnoDB;


2. 事务操作

现在,我们将演示如何使用MySQL进行事务操作。我们将插入两个学生记录,并在两个记录之间插入错误的记录。我们使用以下INSERT语句插入记录:

```sql
INSERT INTO students (name, score) VALUES ('Tom', 92);
INSERT INTO students (name, score) VALUES ('Bob', 86);
INSERT INTO students (name, score) VALUES ('', 79);//这是一个错误的记录
INSERT INTO students (name, score) VALUES ('Amy', 91);

请注意,第三个插入语句有一个空值。这是一个有意制造的错误,我们将在事务处理中回滚这个错误记录。

我们使用以下SQL语句开始一个新的事务:

“`sql

START TRANSACTION;


将第一个学生的分数增加10分:

```sql
UPDATE students SET score = score + 10 WHERE name = 'Tom';

然后,我们发现第三个记录包含错误,因此回退这个错误记录:

“`sql

ROLLBACK;


我们用以下SQL语句提交事务:

```sql
COMMIT;

3. 查看结果

我们使用以下查询命令来检查结果:

“`sql

SELECT * FROM students;


在以上操作中,我们能看到仅两个学生记录被插入到了“students”表中,因为在第三个记录出现错误时,我们使用了ROLLBACK操作来回滚该错误记录。 因此,仅插入了两个学生记录。“Tom”的分数被增加了10分,而“Bob”和“Amy”的记录保持不变。

MySQL事务的实例分享到这里,希望这篇文章对大家的学习有所帮助。

数据运维技术 » MySQL事务实例分享(mysql中事物例子)