【发布时间】:2019-04-16 00:38:08
【问题描述】:
我有两张桌子 A 和 B。
我的交易是这样的:
- 读取 -> 从表 A 读取
- 写入-> 写入表B,写入表A
我想避免脏读/幻读,因为我有多个节点向同一个数据库发出请求。
这是一个例子:
- 事务 1 - 表 B 上发生更新
- 事务 2 - 正在表 A 上读取
- 事务 1 - 表 A 上发生更新
- 事务 2 - 已完成
- 事务 1 - 回滚
现在事务 2 客户端有脏数据。我应该如何避免这种情况?
【问题讨论】:
-
您使用的是哪个 RDBMS? SQL Server、Oracle、MySQL?
-
informix 现在。计划迁移到 SQL 服务器
-
您是否在 Informix 中使用
DIRTY READ隔离级别?在 informix 中,它是读取未提交数据的唯一方法。 -
不推荐脏读 我想知道有没有其他解决办法。
-
Informix 具有其他隔离级别(根据数据库类型存在限制)。你检查过文档吗?你想要的可能是
COMMITTED READ或COMMITTED READ LAST COMMITTED。
标签: sql database transactions informix dirtyread