最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

数据库事务处理之排他锁_MySQL

来源:动视网 责编:小采 时间:2020-11-09 18:29:23
文档

数据库事务处理之排他锁_MySQL

数据库事务处理之排他锁_MySQL:bitsCN.com 数据库事务处理之排他锁 排他锁 下面做作一个实验,验证锁的效果终端一,首先进入事务状态然后运行下面语句 mysql> begin;Query OK, 0 rows affected (0.00 sec) mysql> select * from t1 where id='3'
推荐度:
导读数据库事务处理之排他锁_MySQL:bitsCN.com 数据库事务处理之排他锁 排他锁 下面做作一个实验,验证锁的效果终端一,首先进入事务状态然后运行下面语句 mysql> begin;Query OK, 0 rows affected (0.00 sec) mysql> select * from t1 where id='3'


bitsCN.com

数据库事务处理之排他锁

排他锁

下面做作一个实验,验证锁的效果

终端一,首先进入事务状态然后运行下面语句

mysql> begin;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from t1 where id='3' for update;

+----+--------+---------------------+---------------------+

| id | name | ctime | mtime |

+----+--------+---------------------+---------------------+

| 3 | test | 0000-00-00 00:00:00 | 2013-01-14 13:05:41 |

+----+--------+---------------------+---------------------+

1 row in set (0.00 sec)

终端二, 查询表中数据

mysql> select * from t1;

+----+--------+---------------------+---------------------+

| id | name | ctime | mtime |

+----+--------+---------------------+---------------------+

| 1 | neo | 0000-00-00 00:00:00 | 2013-01-14 13:00:00 |

| 2 | zen | 0000-00-00 00:00:00 | 2013-01-14 13:00:43 |

| 3 | test | 0000-00-00 00:00:00 | 2013-01-14 13:05:41 |

+----+--------+---------------------+---------------------+

3 rows in set (0.00 sec)

增加“for update”查询非锁定记录

mysql> select * from t1 where id=2 for update;

+----+------+---------------------+---------------------+

| id | name | ctime | mtime |

+----+------+---------------------+---------------------+

| 2 | zen | 0000-00-00 00:00:00 | 2013-01-14 13:00:43 |

+----+------+---------------------+---------------------+

1 row in set (0.00 sec)

查询被锁定记录

mysql> select * from t1 where id=3 for update;

ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

查询所有记录,因为记录中包含了id=3那条,所以也不允许查询。

mysql> select * from t1 for update;

ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

测试修改记录

mysql> UPDATE `t1` SET `name`='testaa' WHERE `id`=3;

ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

提示

在没有出现ERROR 1205 (HY000)的这段时间,只要终端一中执行commit,rollback.终端二中的语句就会运行。

bitsCN.com

文档

数据库事务处理之排他锁_MySQL

数据库事务处理之排他锁_MySQL:bitsCN.com 数据库事务处理之排他锁 排他锁 下面做作一个实验,验证锁的效果终端一,首先进入事务状态然后运行下面语句 mysql> begin;Query OK, 0 rows affected (0.00 sec) mysql> select * from t1 where id='3'
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top