господа, прошу объяснить элементарное
## mysql, innoDB
START TRANSACTION;
UPDATE `users` SET `bill`=(`bill`-4500) WHERE `id`='7';
UPDATE `users` SET `bill`=(`bill`+4500) WHERE `id`='5';
COMMIT;
Изучаю транзакции. Пытаюсь с одного пользователя списать деньги, а другому записать. Данная конструкция работает, но, ест-но охота проверить, что если ошибка? Удаляю пользователя 7. Транзакция Все равно записывает деньги пользователю 5. Если же дописать пользователю 7 в UPDATE условие
... WHERE `id`='7' AND `bill`>='4500';
первый запрос - не происходит ничего, второй ест-но выполняется
собственно, подскажите, как изменить запрос, что бы при второй запрос выполнялся только если выполнен первый?
А первый запрос у вас выполняется. Другой вопрос, что он обновляет 0 записей. Чтобы узнать число записей, затронутых предыдущим запросом есть функция ROW_COUNT()
По идее, вот так будет работать
UPDATE `users` SET
`bill`= `bill` + 4500
WHERE
`id`='5' AND
ROW_COUNT() > 0;
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
подскажите пожалуйста как в коде прописать два запроса в БД Таблица, пользователи и таблица платеж, в отдельности запросы работают, а вместе...
Ненавижу БД и всё, что с ними связано, но работать как то надоПытаюсь подключить БД, выдаёт ошибку