日期:2014-05-16  浏览次数:20693 次

MySQL常用命令(二)

1.事务处理

事务是DBMS的执行单位,它由有限的数据库操作序列组成。但不是任意的数据库操作序列都能成为事务。一般来说,事务是必须满足4个条件(ACID)

?

  • 原子性(Atomic):事务的执行性,"要么不做,要么全做",就是说不允许事务部分得执行。即使因为故障而使事务不能完成,在rollback时也要消除对数据库的影响!
  • 一致性(Consistency):事务操作应该使数据库从一个一致状态变成另一个一致的状态!就拿网上购物来说吧,你只有即让商品出库,又让商品进入顾客的购物车才能构成事务!
  • 隔离性(Isolation):如果多个事务并发执行,应象各个事务独立执行一样!
  • 持久性(Durability):一个成功执行的事务对数据库的作用是持久的,即使数据库应故障出错,也应该能够恢复!

2.MySQL事务支持

MySQL在4.1版本之后支持事务,5.1版本后支持存储过程,对于MySQL而言有两种类型的表:

?

  • INNODB表示支持事务处理
  • MYISAM则不支持,查询效率高

在创建表的过程中可以指定,如 create table users(id int,name char(20))ENGINE=INNODB default charset utf8; 即支持事务

?

3.MySQL客户端简单事务演示

(1)先设置事务不是自动提交的:?0=不自动提交; 1=自动提交

??????????mysql> set? autocommint=0;

(2) 删除id=1的记录

????????? mysql> delete from users where id=1;

(3) 查询用户数据,在这一步:查询结果显示,id=1的数据已经被删除了,但实际上事务并没提交

????????? mysql> select * from users;

(4)回滚事务

?????????mysql> rollback;

(5)再次查询用户数据:可以看到id=1的数据还存在,说明事务回滚之后,保持了数据的一致性

???????? mysql>? select * from users;