码上敲享录 > java面试题及答案大全 > select…for update会锁表还是锁行?

select…for update会锁表还是锁行?

上一章章节目录下一章 2023-07-12已有278人阅读 评论(0)

`SELECT...FOR UPDATE`会锁定被选中的行,而不是整个表。


当使用`SELECT...FOR UPDATE`语句时,MySQL会获取选定的行的行级锁,并在事务提交或回滚之前保持锁定状态。这意味着其他事务不能修改或删除被锁定的行,直到当前事务完成。


在多个并发事务中使用`SELECT...FOR UPDATE`语句时,会出现行级锁定。这意味着每个事务可以锁定不同的行,并且其他事务可以继续访问未被锁定的行。


需要注意的是,如果在事务中使用了`SELECT...FOR UPDATE`语句,该事务可能会导致锁定等待的情况。如果其他事务正在尝试锁定已被当前事务选定的行,它们将被阻塞,直到当前事务释放锁。


总结起来,`SELECT...FOR UPDATE`语句会锁定被选定的行,而不是整个表。这允许你在事务中对选定的行进行独占操作,确保数据的完整性和一致性。


如果你有任何更多的疑问,请随时提问。


0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交