У меня есть многопоточное Java-приложение, которое выполняет много параллельных операций CRUD над базой данных MySQL.Как читается в руководствах по MySQL, структура таблицы InnoDB должна обеспечивать выполнение транзакций в соответствии с принципами ACID.Но у меня все еще есть проблемы, потому что иногда Обновления теряются.Это один из примеров хранимых процедур, которые я использую:
DELIMITER //
CREATE PROCEDURE *** (
_*** INT,
_*** INT,
_*** INT,
_*** INT
)
BEGIN
START TRANSACTION;
UPDATE `***`
SET
`***`.`***` = `***`.`***` + _***,
`***`.`***` = `***`.`***` + _*** + _***,
`***`.`***` = DATE_ADD(NOW(), INTERVAL _*** SECOND)
WHERE `***`.`***` = _***;
COMMIT;
END;
//
DELIMITER ;