我在PostgreSQL中使用Npsql。我希望看到一个事务的未提交更改在另一个事务中。
这是我创建连接和交易的方式:
// create connection
m_Connection = new NpgsqlConnection(connectionString);
m_Connection.Open();
//create transaction
m_Transaction = m_Connection.BeginTransaction(IsolationLevel.ReadUncommitted);
在一个线程中,我插入一行,如下所示:
NpgsqlCommand command = CreateCommand("INSERT INTO TABLEA ....", parameters, commandTimeout)
command.ExecuteNonQuery();
并在不提交或回滚交易的情况下处理其他内容。
在另一个帖子中我读了一行:
NpgsqlCommand command = CreateCommand("SELECT COUNT(*) FROM TABLEA", parameters, commandTimeout);
command.ExecuteScalar();
但不知怎的,我没有看到第一个INSERT的结果。我也没有在pgAdmin中看到插入的结果(即使在运行SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED之后)。
我做错了什么?任何帮助将不胜感激。
答案 0 :(得分:7)
PostgreSQL不支持未提交的读取。
您将永远无法看到未提交的其他交易的更改。