Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Объясните про select for update / 2 сообщений из 2, страница 1 из 1
19.02.2015, 16:49
    #38884226
saxix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объясните про select for update
Требуется мне проапдейтить записи в таблице (Nhibernate & PostrgreSQL).
Делаю запрос и получаю список id (IList<Int64>) записей, которые, возможно, потребуется проапдейтить. Далее в цикле прохожу по коллекции и из этой же таблицы по id получаю всю запись (объект). По другим полям определяю, требуется ли делать update. Если надо - произвожу update, нет - иду дальше. Требуется запретить update, который будет производиться из других экземпляров приложений.
При select for update блокировка делается на update записи или и на последующий select и update записи?
Где делать select for update (в запросе на получение списка id или в запросе на получение объекта)?
Как снимается блокировка?
...
Рейтинг: 0 / 0
19.02.2015, 18:52
    #38884361
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объясните про select for update
saxix, в документации сказано что блокировка действует до конца текущей транзакции:
http://www.postgresql.org/docs/9.0/static/sql-select.html FOR UPDATE causes the rows retrieved by the SELECT statement to be locked as though for update. This prevents them from being modified or deleted by other transactions until the current transaction ends. That is, other transactions that attempt UPDATE, DELETE, or SELECT FOR UPDATE of these rows will be blocked until the current transaction ends. Also, if an UPDATE, DELETE, or SELECT FOR UPDATE from another transaction has already locked a selected row or rows, SELECT FOR UPDATE will wait for the other transaction to complete, and will then lock and return the updated row (or no row, if the row was deleted).
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Объясните про select for update / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]