Многопоток в SQL

bartenev

Client
Регистрация
15.01.2015
Сообщения
43
Благодарностей
8
Баллы
8
Всем добрый день! подскажите как правильно работать в таком плане:
Имеем несколько кубиков подряд:
select top 1 id, ...., where status=0
update ... where id = (вытащен из первого кубика)

Если запускать в многопоточном режиме , то часто выбираются одинаковые записи..... как от этого избавиться ?
 

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 100
Благодарностей
649
Баллы
113

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113
1. Транзакции
2. Отдельные блокировки таблицы, если доступно
3. select ... for update (зависит от бд)
4. Дополнительное поле в таблице со значением по умолчанию. Перед запросом генерируется случайная строка-идентификатор.
Потом update ... where доп_поле = значение_по_умолчанию set доп_поле=случайная_строка LIMIT 1
Потом select ... where доп_поле=случайная_строка
 
  • Спасибо
Реакции: bartenev

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)