Я создаю приложение на node.js, используя экспресс и драйвер node -mysql. В моем приложении есть несколько случаев, когда мне нужно сделать ряд вложений/обновлений базы данных. Я хочу, чтобы они были в транзакции таким образом, что если вторая или третья не сработает, предыдущие вставки полностью откатываются.
В настоящее время, как я делаю это, нужно иметь какое-то промежуточное ПО, которое выполняет START TRANSACTION
, когда поступит запрос. Во время обработки запроса, если возникает какая-либо ошибка, я поймаю эту ошибку и сделаю a ROLLBACK
. Если ошибка не возникает, я делаю COMMIT
перед отправкой ответа в браузер.
Однако теперь я обеспокоен тем, что это не сработает, когда несколько пользователей обращаются к приложению одновременно, поскольку MySQL делает принудительное завершение, если другой запрос пытается начать свою собственную транзакцию с помощью START TRANSACTION
! В настоящее время я использую только один экземпляр node и одно соединение MySQL для всех запросов.
Может кто-нибудь, пожалуйста, посоветуйте мне, если мои проблемы действительны, и как мне получить поддержку транзакций?