问题标签 [read-uncommitted]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - Sql Server 读取未提交的字段级别差异?
如果我的连接允许脏读,我是否可能会从同一行的多个字段中得到不一致的结果?例子:
连接1:
连接2:
连接 2 是否有可能看到 col1 和 col2 的值不相等?例如, col1=1 和 col2=2 ,或者, col1=2 和 col2=1
postgresql - Read uncommited rows created by postgresql function?
I wrote a function that creates a row in the table mytable
accordingly to the parameters and returns the id of the created row.
Unfortunately, if I use the following statement, the SELECT
returns no row, as if the transaction of the function was different from the one of the SELECT
.
My understanding was that I was running the same transaction for the select and the function and then should be able to read uncommitted rows.
I am trying with postgres 9.6
Any clue how to make it works properly ?
c# - SqlXml 抛出 NullReferenceException
我有麻烦。:(
MS SQL Server 2016 13.0.15900.1 .NET 框架 4.5.2
- 有一个带有大 xml 字段的表(> 1 mb)
- 使用(出)XPath 读取、更改和更新 [xmlField] 的糟糕程序
- 该过程从 [myTable] 中选择 [xmlField],其中 [id] = @id
- 以及带有(readuncommitted, nolock)的动态 SQL 请求。
可怕的程序和动态请求工作正常。选择 [xmlField] 的过程导致 System.Data.dll 中的 NullReferenceException
到底发生了什么,我该如何避免呢?
很可能,我们只读取了XML的一部分,没有时间注册到最后,导致xml文档损坏。但是,如何才能避免这种情况呢?将 XML 作为字符串使用?
c# - 在 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 中运行存储过程
我设置了一个DbContext
我有这个代码的地方:
在上下文构造函数中。我执行这样的存储过程:
但我遇到了死锁,因为这是在读取提交的连接中执行的。
我问的是,当存储过程属于具有读取未提交连接的同一上下文的一部分时,是否有任何理由以读取提交的方式运行。
c# - 如何验证 TransactionScope 是否适用于 MySQL?
我想添加读取未提交的隔离级别。我知道可以使用 SQL 语句。但我想尝试使用 TransactionScope,但我尝试了但没有在 MySQL 常规日志上获得任何隔离语句。问题 1 transactionscope 类是否适用于 MySQL。如果是,那么如何验证。
sql-server - 如果两个事务都不回滚,则已提交读与未提交读
我试图了解读取已提交和未提交的隔离级别。我知道理论上未提交的读取允许脏读,而已提交的读取则不允许,但我仍然无法真正理解。
考虑上图,如果没有任何事务被中止,那么读取已提交和未提交读取的最终结果是否相同?
mysql - MySQL 脏读与 SQL 标准中定义的脏读
来自 MySQL 手册:
阅读未提交
SELECT 语句以非锁定方式执行,但可能会使用行的早期版本。因此,使用这个隔离级别,这样的读取是不一致的。这也称为脏读。否则,此隔离级别的工作方式类似于 READ COMMITTED。
粗体部分让我感到困惑。“可能会使用早期版本的行”?用在什么地方?这怎么能被称为“脏读”?
SQL 标准说脏读包含从未存在的数据:
P1(“脏读”):SQL 事务 T1 修改一行。SQL 事务 T2 然后在 T1 执行 COMMIT 之前读取该行。如果 T1 然后执行 ROLLBACK,则 T2 将读取从未提交的行,因此可能被认为从未存在过。
MySQL手册在这里是错的还是什么?
sql-server - 如何从触发器内的其他表中读取未提交的数据
我有 2 个表,Contact 和 ContactFunction。它们具有一对多关系,因为在一个联系人中可以有多个 ContactFunction。所以 ContactFunction 有 ContactID 作为外键。因此,在我的 .NetCore Web 应用程序中,我可以在同一页面上更新联系人及其功能。但这实际上是在保存上面提到的两个单独的实体。我在联系人表上有一个触发器,它将插入/更新/删除放入历史表中。我还需要一种方法来在此触发器中包含任何 ContactFunction 更改。但是在这个阶段,由于我假设的关系,似乎还没有提交到 ContactFunction 表。除了为两者创建历史表之外,您能想出一种方法吗?
我正在尝试从 Contact 表触发器中的 ContactFunction 表中读取数据,但它还不存在。变量@FUNCTIONSSTRING 是我试图从第二个表(ContactFunction)中读取数据的地方
我希望看到 ContactFunction 表的最新更改,但它不存在。有没有办法做到这一点?
c# - hibernate查询中使用nolock时出现识别错误
我有简单的休眠查询,查询中使用了 nolock。我收到错误 - 发生识别错误并且休眠错误是抛出异常:NHibernate.dll 中的“NHibernate.Hql.Ast.ANTLR.QuerySyntaxException”。它可以在没有锁定的情况下工作。我不想用
因为我必须仅将 nolock 应用于特定表。
以下是 hql 查询 -
我错过了什么吗?
mysql - ReadUncommitted 可以知道所有将存在的 LOWER 自动增量 ID 吗?
假设我们有一个带有自增主键的表。我想加载所有大于我看到的最后一个 ID 的 ID。
使用幼稚的方法,我冒着跳过 ID 的风险:
- 事务 1 声明 ID 11。
- 事务 2 声明 ID 12。
- 事务 2 提交。
- 我阅读了所有> 10的ID。我看到了 12,下次我会读取所有 >12 的 ID。我跳过了11。
- 事务 1 提交。出于所有意图和目的,ID 11 现在存在。
作为一种解决方案,我建议进行仔细检查以确保没有中间 ID 即将提交:
如果计数大于在第一个查询中看到的 ID 数,那么肯定有可能在该序列的间隙中提交额外的 ID。
问题是:反过来是否成立?如果计数等于(或小于)在第一个查询中看到的 ID 数,是否保证两者之间不会有任何值?还是我错过了一些可能的情况,即 ID 被认领,但READ UNCOMMITTED
查询还没有看到它们?
对于这个问题,请忽略:
- 手动插入 ID。
- 倒带自动增量计数器。