gpt4 book ai didi

mysql - 哪种锁定/事务隔离级别适合这种情况?

转载 作者:行者123 更新时间:2023-11-29 02:05:44 26 4
gpt4 key购买 nike

假设我有一张学生表和一张学校表。我正在执行的一项操作是:

  • 删除属于学校的所有学生
  • 修改学校本身(可能更改名称或其他一些字段)
  • 加回一群学生

关心这种情况:两个人同时编辑学校/学生。一个提交他们的更改。不久之后,其他人提交了他们的更改。这不会成为问题,因为在第二个用户的情况下,应用程序会注意到他们正在尝试覆盖新修订。

担心:有人打开学校/学生的编辑器(涉及从表中读取),同时修改它们的事务正在运行。

所以基本上,当事务正在修改表时,读取不应该能够运行。此外,写入也不应该同时发生。

最佳答案

只有在可序列化隔离级别,MySQL 才不允许您读取正在被另一个事务修改的行。在任何较低的隔离级别中,您将看到行处于修改它们的事务开始之前的状态。当然,在 READ_UNCOMITTED 中,行将被视为已删除/已修改,尽管事务尚未完成。

如果你使用select for update,

关于mysql - 哪种锁定/事务隔离级别适合这种情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6412932/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com