Я использую Npsql с PostgreSQL. Я хочу видеть незафиксированные изменения одной транзакции в другой.Npgsql с PostgreSQL: не удается увидеть незафиксированные изменения с помощью UNCOMMITTED READ
Это, как я создаю мою связь и сделки:
// 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 SETACTION ISOLATION LEVEL READ UNCOMMITTED).
Что я делаю неправильно? Любая помощь будет оценена.
Ничего себе. Это для меня неожиданность. Спасибо за ответ! :) Подробнее об интересующем вас здесь: http://www.postgresql.org/docs/8.1/static/sql-set-transaction.html («В PostgreSQL READ UNCOMMITTED рассматривается как READ COMMITTED, в то время как REPEATABLE READ обрабатывается как SERIALIZABLE. ") – machinery
Почему это удивительно? READ UNCOMMITTED не имеет смысла (по крайней мере для меня) –
Удивительно для меня лично, потому что я работал с DB2, где READ UNCOMMITTED был допустимым уровнем изоляции. И это также определено в стандарте SQL. – machinery