вот интересная ситуация.
Я начинаю транзакцию с MySQL. Моя транзакция включает 3 связанных запроса.
Каждый запрос должен быть успешным, и если нет, то ни один из них не должен быть записан в базу данных.
Теперь ... специально для второго запроса ... который является запросом ОБНОВЛЕНИЯ ... Я изменил
значение pk, идентифицирующее запись, которая будет обновлена до недопустимого (несуществующего) значения PK. Я хотел, чтобы 2-й запрос не прошел тестирование. Запрос в порядке, просто значение c_id неверно (запись, которую я пытаюсь ОБНОВИТЬ, не завершается).
Проблема в том, что запрос выполняется с "ОК" ...
mysql> UPDATE tableX SET bal = 4576.99 WHERE c_id = 3789;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
Это проблема, потому что ошибка (с моей точки зрения, ошибка, поскольку ключевая запись, которая должна быть обновлена, не была обновлена в цепочке связанных запросов) не была обнаружена, и транзакция, таким образом, не прервалась и не выполнялась откат, вместо этого процесс переходит к третьему запросу, который также успешно выполняется, и затем транзакция фиксируется.
Итак, я нахожу странным, что такая ошибка не обнаруживается MySQL или не помечается как ошибка MySQL.
Есть какие-нибудь идеи относительно того, почему или как это исправить?