事务的概念以及处理方式

2019-04-07  本文已影响0人  加一片柠檬233
1. 概念

数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作,要么完全执行,要么完全地不执行。

2.事务的特性(ACID)
3. 使用
  1. BEGIN 开始一个事务

  2. ROLLBACK 事务回滚

  3. COMMIT 事务确认

  4. 直接用 SET 来改变 MySQL 的自动提交模式:
    SET AUTOCOMMIT=0 禁止自动提交
    SET AUTOCOMMIT=1 开启自动提交

mysql> CREATE TABLE student (
 `id` INT NOT NULL,
`name` VARCHAR(100) NOT NULL,
`age` INT NOT NULL,
`sex` VARCHAR(100) NOT NULL
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

mysql> select * from student;   //empty
mysql> SET AUTOCOMMIT=0;
mysql> begin;  //开始事务
mysql> INSERT INTO student VALUES(1,'张三',18,'男');
mysql> INSERT INTO student VALUES(2,'李四',20,'女');
mysql> commit; // 提交事务
mysql>  select * from student;
+------+------+------+------+
| id   | name | age | sex  |
+------+------+------+------+
| 1    | 张三 |  18  |  男  |
| 2    | 李四 |  20  |  女  |
+------+------+------+------+

mysql> begin;    //开始事务
Query OK, 0 rows affected (0.00 sec)
 
mysql>  INSERT INTO student VALUES(3,'王五',19,'女');
mysql> rollback;   
Query OK, 0 rows affected (0.00 sec)
 
mysql>   select * from student;   // 因为回滚所以数据没有插入
+------+------+------+------+
| id   | name | age | sex  |
+------+------+------+------+
| 1    | 张三 |  18  |  男  |
| 2    | 李四 |  20  |  女  |
+------+------+------+------+
上一篇下一篇

猜你喜欢

热点阅读