事务控制和锁定语句

 

MyISAMMEMORY存储引擎的表            表级锁定

BDB存储引擎的表                                  页级锁定

InnoDB的存储引擎的表                      行级锁定

默认情况下,表锁和行锁是自动获取,不需要额外的命令。但有的情况下,用户需要明确地进行锁表或进行事务控制,以便确保整个事务的完整性,因而需要事务控制和锁定语句。

 

1、  lock table unlock table

lock table锁定当前线程的表。如果表被其它线程锁定,则当前线程会等待,直到获取锁定的表。

Unlock table 释放当前线程获得的任务锁定。当前线程执行另一个lock table时,或连接关闭时,当前线程锁定的表被隐含地解锁。

语法:

LOCK TABLES

       table_name [as alias] {Read [Local] | [Low_Priortiy] Write} 

[,table_name [as alias] {Read [Local] | [Low_Priortiy] Write} ]…    

UNLOCK TABLES

 

Session1

Session2

LOCK TABLE file_text read;

 

Select film_id,tiem from file_text where film _id=1001;

Select film_id,tiem from file_text where film _id=1001;

 

Update file_txt set title=”Test” where film_id=101;

等待

UNLOCK TABLES;

获得锁,更新操作完成;

Update file_txt set title=”Test” where film_id=101;

 

2、  事务控制

通过SET AUTOCOMMITSTART TRANSACTIONCOMMITROLLBACK语句支持本地事务,具体语法如下:

START TRANSACTION |BEGIN [WORK]

COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]

ROLLBACK  [WORK] [AND [NO] CHAIN] [[NO] RELEASE]

SET AUTOCOMMIT ={0|1}

默认自动提交,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值