Условный запрос на обновление - PullRequest
0 голосов
/ 08 мая 2020

У меня следующий запрос

UPDATE users_ SET equity=equity-100 WHERE account_id=1

Обновление должно выполняться только в том случае, если у пользователя достаточно средств, т.е. эквити> = 100. Как это можно сделать?

1 Ответ

1 голос
/ 08 мая 2020

Используйте предложение where:

UPDATE users_
    SET equity = equity - 100
    WHERE account_id = 1 AND equity >= 100;

Для дополнительной защиты MySQL, наконец, поддерживает ограничения check. Таким образом, в самых последних версиях вы можете:

alter table users_ add constraints chk_users_equity
    check (equity >= 0);

Это не допускает отрицательных значений. Фактически, если equity является целым числом, вы можете объявить его беззнаковым и иметь тот же эффект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...