@aopil

Как исключить выборки одной и строчки sql?

Делаю выборку из БД
SELECT * FROM table WHERE Type =:type AND DateTimeRequest < NOW() - INTERVAL 24 HOUR ORDER BY DateTimeRequest ASC LIMIT 1

Далее делаю обновление времени:
UPDATE table SET DateTimeRequest = NOW() WHERE Id = $id


Если одновременно запускается скрипт 2 раза, то иногда он выбирает одну и туже строчку, тем самым вытаскиваем одинаковый результат, как этого избегать?
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 3
@entermix
Используйте транзакции
Ответ написан
Комментировать
@feniksdv
Делайте проверку изменяемого поля
Ответ написан
Комментировать
@BorisKorobkov Куратор тега PHP
Web developer
Плохой вариант: использовать lock.
для cron: flock
для mysql: https://dev.mysql.com/doc/refman/8.0/en/lock-table...
для postgresql: https://www.postgresql.org/docs/9.1/functions-admi...

Хороший вариант: полностью переписать с привлечением грамотного разработчика
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы