1事务特性
原子性:
一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
其实就是要么做要么不做
一致性:
在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。
其实就是满足业务规则
隔离性:
数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。
多个事务不会相互影响
持久性:
事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
一锤定音
2事务语句
begin 2.1开启一个事务
mysql> begin;
Query OK, 0 rows affected (0.00 sec)
rollback commit 2.2事务结束
事务的结束有两种,一种是commit,一旦commit以后,再回滚也没用
rollback 2.2.3事务回滚
commit 2.2.4事务提交
mysql> select * from user;
+----+------+------+
| id | name | pass |
+----+------+------+
| 1 | lsq | 1111 |
| 2 | 1 | 0 |
| 3 | 1 | 0 |
| 4 | 4 | 4 |
| 6 | 2 | 2 |
| 7 | 4 | 4 |
+----+------+------+
6 rows in set (0.00 sec)
mysql> begin;
Query OK, 0 rows affected (0.00 sec)
mysql> delete from user where id=1;
Query OK, 1 row affected (0.02 sec)
mysql> select * from user;
+----+------+------+
| id | name | pass |
+----+------+------+
| 2 | 1 | 0 |
| 3 | 1 | 0 |
| 4 | 4 | 4 |
| 6 | 2 | 2 |
| 7 | 4 | 4 |
+----+------+------+
5 rows in set (0.00 sec)
mysql> rollback;
Query OK, 0 rows affected (0.04 sec)
mysql> select * from user;
+----+------+------+
| id | name | pass |
+----+------+------+
| 1 | lsq | 1111 |
| 2 | 1 | 0 |
| 3 | 1 | 0 |
| 4 | 4 | 4 |
| 6 | 2 | 2 |
| 7 | 4 | 4 |
+----+------+------+
6 rows in set (0.00 sec)