Используйте предложение 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
является целым числом, вы можете объявить его беззнаковым и иметь тот же эффект.