Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL如何解锁表如果我用命令LOCK table_name WRITE;_Mysql - Fatal编程技术网

MYSQL如何解锁表如果我用命令LOCK table_name WRITE;

MYSQL如何解锁表如果我用命令LOCK table_name WRITE;,mysql,Mysql,这是我的第一个问题,请耐心听我说 我使用了以下命令: LOCK "table table_name WRITE;" 在mysql workbench中锁定向该表添加行的任何新用户。我无法“解锁”此表。 例如,每当我尝试输入不同的命令时 select * from table_name 屏幕一直在加载。任何帮助都将不胜感激 锁释放规则 当会话持有的表锁被释放时,它们都会同时被释放。会话可以显式释放其锁,也可以在某些条件下隐式释放锁 会话可以使用UNLOCK表显式释放其锁 如果会话发出LO

这是我的第一个问题,请耐心听我说

我使用了以下命令:

LOCK "table table_name WRITE;" 
在mysql workbench中锁定向该表添加行的任何新用户。我无法“解锁”此表。
例如,每当我尝试输入不同的命令时

select * from table_name

屏幕一直在加载。任何帮助都将不胜感激

锁释放规则


当会话持有的表锁被释放时,它们都会同时被释放。会话可以显式释放其锁,也可以在某些条件下隐式释放锁

  • 会话可以使用UNLOCK表显式释放其锁

  • 如果会话发出LOCK TABLES语句以在 已经持有锁,其现有锁被隐式释放 在授予新锁之前

  • 如果会话开始事务(例如,使用START 事务),执行隐式解锁表,这会导致 要释放的现有锁


Ref:

是否有其他方法防止将行插入数据库中的表中?例如,为了防止用户注册为管理员,您所说的在应用程序逻辑方面似乎更合适,即:您应该在将内容发送到数据库之前检查这些内容。IMHO锁定机制(无论是在表中还是在行中)旨在强制执行并发上下文中的可靠性和一致性(例如,用户尝试更改另一个用户正在读取的数据)。你可以查看更多信息。