@klajowski

Как обрабатывать одновременную запись в БД с двух процессов (экземпляров програм)?

У меня запущены 2 программы которые одновременно пытаются изменить одно и то же поле в таблице БД:

QSqlQuery query(m_database);
if(!query.exec("UPDATE users SET first_name = 'Vladyslav' WHERE id = 1"))
{
        QMessageBox::critical(nullptr, "Query error", query.lastError().text(), QMessageBox::Cancel);
}


В итоге MySQL Workbench показывает следующее:
6075ba6f473d2037030874.jpeg

Причем "State" у обоих Query прыгает постоянно. Пока они прыгали я решил глянуть что там в этом поле, сделав SELECT. В итоге я увидел такую картину:
6075bbdea02ff341676838.jpeg

Получается что запись уже выполнена, но состояние каждого из Query прыгает.
Что это значит? Скорее всего так не должно быть. Тогда как это исправить?
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 1
romesses
@romesses
Backend инженер
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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