如何锁定一行|学习笔记

简介: 快速学习如何锁定一行

开发者学堂课程【MySQL 高级应用 - 索引和锁如何锁定一行】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/598/detail/8638


如何锁定一行


目录:

一、主要步骤

二、总结

 

一、主要步骤

1定起点【begin;

image.png

2锁定如8号记录

例:select * from test_ innodb_ 1ock where a=8 for update;

假设8号记录有 abcd 等多段字段,此时c 出现错误,在修改时即可能由他人的参与同时进行修改。

此时即可运用锁行进行避免

mysq1>select* feom test_innodb_lock;

//进行 select

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

|  a   | b     |

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

|   1  | b2    |

|   3  | 0629     |

|   4  | 0629   |  

|   5  | 0629  |    

|   6  | 6000  |

|   7  | 7000  |

|   8  | 8000  |

|   9  | 9002  |

|   1  | b1    |

|   2  | 2000  |

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

9 rows in set (0.00 sec )

mysq1>select* feom test_innodb_lock where a=8 for update;

//手工为其上锁,修改此时仅允许自身独占。

session-2回车将出现堵塞。

Query OK,0 row affected(0.00 sec )

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

|  a   | b     |

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

|   8  |  8000  |

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

1 row in set (0.00 set)

myseq1>

(3)锁行后于 session-2进行修改【b=xxx】,session 进行自己的运行有较为稳定的优点。

session-1更改完毕后输入【commit】即可对 session-2进行照常运行

 

二、总结

select xxx... for update 锁定某一行后,其它的操作会被阻塞。直到锁定行的会话提交 commit

目录
打赏
0
0
0
0
127
分享
相关文章
PostgreSQL 数据库实例只读锁定(readonly) - 硬锁定,软锁定,解锁
PostgreSQL 数据库实例只读锁定(readonly) - 硬锁定,软锁定,解锁
2721 0
19 PostgreSQL 锁类型,锁模式,锁冲突,死锁检测的介绍|学习笔记
快速学习19 PostgreSQL 锁类型,锁模式,锁冲突,死锁检测的介绍
19 PostgreSQL 锁类型,锁模式,锁冲突,死锁检测的介绍|学习笔记
服务器被锁定
服务器被锁定
199 0
Oracle查询锁表以及杀会话或系统进程来解除锁表操作
Oracle查询锁表以及杀会话或系统进程来解除锁表操作
296 0
Oracle 数据库用户锁定与解锁,用户锁定最大密码失败次数设置方法,ORA-28000: the account is locked问题解决方法
Oracle 数据库用户锁定与解锁,用户锁定最大密码失败次数设置方法,ORA-28000: the account is locked问题解决方法
1221 0
Oracle 数据库用户锁定与解锁,用户锁定最大密码失败次数设置方法,ORA-28000: the account is locked问题解决方法
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等