admin 管理员组文章数量: 1184232
如新语法的字面含义,NOWAIT表示当无法获取到锁时直接返回错误,而不是等待;SKIP LOCKED表示忽略那些已经被其他session占有行锁的记录。下面看测试:
测试 一
session 1 :
mysql> select * from t;
+----+
| a |
+----+
| 42 |
| 43 |
| 44 |
| 46 |
+----+
4 rows in set (0.00 sec)
mysql> delete from t where a=42;
Query OK, 1 row affected (0.01 sec)
session 2 :会话2 由于获取不到锁而直接报错
mysql> select * from t for update nowait;
ERROR 3572 (HY000): Statement aborted because lock(s) could not be acquired immediately and NOWAIT is set.
测试 二
session 1 :
mysql> select * from t;
+----+
| a |
+----+
| 42 |
| 43 |
| 44 |
| 46 |
+----+
4 rows in set (0.00 sec)
mysql> delete from t where a=42;
Query OK, 1 row affected (0.01 sec)
session 2 :
mysql> select * from t for update skip locked;
+----+
| a |
+----+
| 43 |
| 44 |
| 46 |
+----+
3 rows in set (0.00 sec)
本文标签: 新特性 MySQL LOCKED skip NOWAIT
版权声明:本文标题:mysql 8.0 新特性:NOWAIT以及SKIP LOCKED 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1754579697a3016993.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论