lock,unlock是什么意思

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,1. lock tables 是锁定表,unlock tables是解除锁定表。

2. mysql 的 表锁 lock tables 感觉就像一个 封闭的空间。而 MySQL运行lock tables 命令的时候,会将带有锁标记的表(table) 带入封闭空间,直到出现 unlock tables 命令或线程结束,才关闭封闭空间。进入封闭空间时 , 仅仅只有锁标记的表(table)可以在里面使用,其他表无法使用。

注:锁:分为 read(读) 和 write (写)两种锁。

3. 如: 将 table1 设为read锁, table2 设为write锁,,table3 设为read锁

lock tables [table1] read,
[table2] write,
[table3] read;
unlock tables;

则执行到lock tables 时,进入封闭空间。

    1)table1 仅允许[所有人]读,[空间外]如需写、更新要等待[空间退出],[空间内]如需写、更新会引发mysql报错。
    2)table2 仅允许[空间内]读写更新,[空间外]如需写、更新要等待[空间退出]。
    3) table3 仅允许[所有人]读,[空间外]如需写、更新要等待[空间退出],[空间内]如需写、更新会引发mysql报错。

然后执行到unlock tables时,退出封闭空间,释放所有表锁。

注:当前线程关闭时,自动退出封闭空间,释放所有表锁,无论有没有执行 unlock tables

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师