0

我们是初学者,我们的 java 软件使用 select * 等从数据库中获取查询。

我的问题是我们是否需要在共享模式和“FOR UPDATE”中添加锁来强制执行锁,或者表和行锁是自动的吗?

我们有一张要强制并发的表,我可以将 LOCK TABLE 添加到我需要锁定的表中,然后更新值,然后解锁它吗?

4

1 回答 1

2

我认为根据您对我的评论的回答,您真的不必担心手动处理表锁。InnoDB 支持行级锁定并启用自动提交(默认情况下)所有单个查询实际上都以事务方式处理。

现在,如果您有多个 SQL 查询需要作为单个事务处理(即更新一个表,然后更新另一个表 - 要么都成功,要么都回滚),那么您需要专门启动一个事务并提交它或在临时查询执行后回滚。

如果需要更改事务隔离级别,也可以使用SET TRANSACTION语句(默认为 `REPEATABLE READ1)。

有关更多信息,请查看MySQL 文档

于 2012-11-28T01:06:24.330 回答