MySQL-表“ my_table”未用锁定表锁定

基兰·海德利(Kieran Headley):

我尝试通过MySQL加载表并得到以下错误?

MySQL说:表'cms'没有用LOCK TABLES锁定

为什么需要锁定桌子?我没看过吗?有什么方法可以解锁吗?你甚至想吗?

火影忍者

http://dev.mysql.com/doc/refman/5.7/en/lock-tables.html

MySQL使客户端会话能够显式地获取表锁,以便与其他会话协作访问表,或者防止其他会话在会话需要互斥访问期间修改表。会话只能为其自身获取或释放锁。一个会话无法获取另一会话的锁,也不能释放另一会话持有的锁。

在更新表时,锁可用于模拟事务或提高速度。本节稍后将对此进行详细说明。

LOCK TABLES显式获取当前客户端会话的表锁。可以为基本表或视图获取表锁。您必须具有LOCK TABLES特权和要锁定的每个对象的SELECT特权。

对于视图锁定,LOCK TABLES将视图中使用的所有基本表添加到要锁定的表集中,并自动锁定它们。如果使用LOCK TABLES显式锁定表,则触发器中使用的任何表也会隐式锁定,如第13.3.5.2节“ LOCK TABLES和Triggers”中所述。

UNLOCK TABLES显式释放当前会话持有的所有表锁。LOCK TABLES在获取新锁之前隐式释放当前会话持有的所有表锁。

UNLOCK TABLES的另一个用途是释放使用FLUSH TABLES WITH READ LOCK语句获取的全局读取锁定,这使您可以锁定所有数据库中的所有表。请参见第13.7.6.3节“ FLUSH语法”。(如果您拥有诸如Veritas之类的可以及时拍摄快照的文件系统,这是获取备份的一种非常方便的方法。)

LOCK和UNLOCK的语法

 LOCK TABLES
    tbl_name [[AS] alias] lock_type
    [, tbl_name [[AS] alias] lock_type] ...

lock_type:
    READ [LOCAL]
  | [LOW_PRIORITY] WRITE

例如:-

LOCK TABLE t WRITE, t AS t1 READ;

解锁表

 UNLOCK TABLES

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章