<深入浅出MySQL>读书笔记之事务控制和锁语句
Contents
MySQL支持对MyISAM和MEMORY存储引擎的表进行表级锁定,对BDB存储引擎的表进行页级锁定,对InnoDB存储引擎的表进行行级锁定。
锁表
LOCK TABLES
: 可以锁定用于当前线的表。如果表被其他线程锁定,则当前线程会等待,直到可以获取所有锁定为止.
UNLOCK TABLES
: 可以释放当前线程获得的任何锁定。当前线程执行另一个 LOCK TABLES时,或当与服务器的连接被关闭时,所有由当前线程锁定的表被隐含地解锁.
语法
mysql> ? lock
Name: 'LOCK'
Description:
Syntax:
LOCK TABLES
tbl_name [[AS] alias] lock_type
[, tbl_name [[AS] alias] lock_type] ...
lock_type:
READ [LOCAL]
| [LOW_PRIORITY] WRITE
UNLOCK TABLES
事务控制
默认情况下, MySQL是自动提交事务的.
更详细的帮助, 可以查看:
mysql> ? start transaction
开启事务:
start transaction
或begin
提交或回滚:
commit
,rollback
commit and chain
: 立即启动一个新的事务, 并且和刚才的那个事务具有相同的隔离级别.release
: 断开和客户端的连接.如果定义了相同名字的
SAVEPOINT
,则后面定义的SAVEPOINT 会覆盖之前的定义。
分布式事务 XA
查看具体的帮助:mysql> ? xa