![]() |
1
3
假设您已经在谈论事务,我假设您没有使用myisam,而是使用innodb或其他已经支持事务的引擎。 锁定读或写事务以保持操作的原子性不是应该手动执行的操作。这是你交易的工作 隔离级别 这样做。这还将保留事务打开和表或记录锁定之间操作的原子性,这样就不会有读操作同时溜入。 对于您描述的用例,您需要的是具有“可序列化”隔离级别的事务,该级别将为读和写而锁定。此外,它将只自动锁定从中读取的记录(即使查询范围),因此剩下的记录可以自由操作。 通过“可序列化”隔离级别,从表中读取信息时,任何更新或读取这些记录的尝试都必须等待该事务完成。另外,在更新同一个事务之前,请确保您已经阅读了,这样您就可以确保使用正确的值。 您可以在此处阅读有关隔离级别的更多信息: http://en.wikipedia.org/wiki/Isolation_(database_systems) http://www.databasejournal.com/features/mysql/article.php/3393161/MySQL-Transactions-Part-II---Transaction-Isolation-Levels.htm 您可以在这里学习如何设置事务的隔离级别: http://dev.mysql.com/doc/refman/5.0/en/set-transaction.html |
![]() |
cluster1 · 采取独立的新行动的好处是什么? 9 月前 |
|
Robert · 使用JSON或哈希时,将NULL替换为NIL 9 月前 |
![]() |
Fred Willmore · Rails控制器不呈现任何模板 1 年前 |
![]() |
Diogo Amaral · 实现API请求的正确方式 1 年前 |
![]() |
Meknassih · 在控制器方法中分配给模型没有任何作用 1 年前 |
![]() |
Michael Ding · Rails上的默认会话到期问题 1 年前 |
|
Flávio · 基于另外两个生成数组 1 年前 |