使用PostgreSQL的Npgsql:使用UNCOMMITTED READ无法看到未提交的更改

mac*_*ery 1 postgresql npgsql

我正在使用Npsql和PostgreSQL.我想在另一个事务中看到一个事务的未提交更改.

这是我创建连接和事务的方式:

// create connection
m_Connection = new NpgsqlConnection(connectionString);
m_Connection.Open();

//create transaction
m_Transaction = m_Connection.BeginTransaction(IsolationLevel.ReadUncommitted);
Run Code Online (Sandbox Code Playgroud)

在一个线程中,我插入一行,如下所示:

 NpgsqlCommand command = CreateCommand("INSERT INTO TABLEA  ....", parameters, commandTimeout)
 command.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)

并且在不提交或回滚交易的情况下处理其他内容.

在另一个线程中,我读了一行,如下所示:

 NpgsqlCommand command = CreateCommand("SELECT COUNT(*) FROM TABLEA", parameters, commandTimeout);
 command.ExecuteScalar();
Run Code Online (Sandbox Code Playgroud)

但不知怎的,我没有看到第一个INSERT的结果.我也没有在pgAdmin中看到插入的结果(即使在运行SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED之后).

我究竟做错了什么?任何帮助将不胜感激.

a_h*_*ame 7

PostgreSQL不支持未提交的读取.

您将永远无法看到未提交的其他事务的更改.