我正在实施一个系统,我在其中区分SELECT ...
和SELECT ... FOR UPDATE
。
常规SELECT ...
用于读取允许处于“不正确”状态的实体(不正确=可能会在之后更新)
SELECT ... FOR UPDATE
始终用于读取目标以编辑它的对象,因此它应该返回对象的正确状态。
现在我正在尝试执行以下操作:
每当SELECT ... FOR UPDATE
语句读取对象时,锁定同一对象上的其他SELECT ... FOR UPDATE
个查询。但是,常规SELECT ...
仍应有效。
有没有办法通过使用预定义的锁来做到这一点? 我查看了数据库隔离级别,但我不认为它们是我问题的一部分。
我正在使用java,hibernate和sql数据库。
答案 0 :(得分:0)
选择更新不会锁定MySQL。它在Oracle,Postgres,MS SQL中有效。