如何暗示在MySql中的所有表的WRITE锁?

如何暗示在MySql中的所有表的WRITE锁? 我尝试了以下,但它给错误。

FLUSH TABLES mytest.mytable1 WITH LOCK; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WITH LOCK' at line 1 

你想在这里做什么? 如果你对自己的想法做出假设,MySQL中的locking可能会有点混乱。

  • READ锁允许与锁读取会话,而其他会话读取但不写入。
  • WRITE锁允许与锁的会话读取和写入,其他会话无法访问。

FLUSH TABLES语法不允许您指定表的列表以及获取锁。 FLUSH TABLES WITH READ LOCK锁的FLUSH TABLES WITH READ LOCKlocking所有表格。 FLUSH TABLES <tables>将会刷新这些表格。 有一些隐式locking涉及刷新表,因为新的写入在刷新时不能进入表,但是一旦刷新完成,就会释放该隐式锁。

如果你想用写锁来locking特定的表, LOCK TABLES <table> WRITE是你想要的。 您可以在这里提供以逗号分隔的表格列表。 如果你想locking所有的表,你需要提供整个列表。

我想在简单的陈述中总结一下 – 带有读锁的平板电脑表; 将允许所有会话进行读操作,并且不允许对任何会话进行任何数据修改。 LOCK TABLE tblname WRITE; 将locking表,它将允许读取或修改已发布会话的数据,但不会用于其他会话。 谢谢 ……