@Artem0071
Безработный mr. Junior

Как закрывать временно доступ к БД?

У меня есть таблица с баллами(points).
Как сделать так, чтобы пока один снимает/пополняет баллы, другой человек не мог делать того же самого?

Пример: есть баллы-А(points) и баллы-B(tiles)
Их можно друг в друга конвертировать. Обе таблицы ограничены в количестве (max points = 100, max tiles = 50000) по всей бд.

Как сделать так, чтобы пока один конвертирует tiles в points никто не мог этого делать (чтобы не получилось так, что оба обменивают points и их неожиданно не стало -10)?
  • Вопрос задан
  • 320 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега PHP
♬♬
Блокировки в MySQL на Хабре.

Если коротко:
LOCK TABLES tiles, points WRITE;

-- тут конвертируем одно в другое

UNLOCK TABLES;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Нужно использовать транзакции
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы