Как избежать одновременного доступа для чтения к таблице в mysql? - PullRequest
0 голосов
/ 16 июня 2020

У меня есть таблица в MySQL, которая содержит специальный идентификатор в определенном столбце. Мое требование - получить последнее вставленное значение идентификатора (Select... ORDER BY ID DESC LIMIT 1), сгенерировать новое значение на основе полученного значения идентификатора, а затем вставить новую запись с этим сгенерированным значением.

Проблема в том, что два пользователя смогут читать последний вставленный идентификатор одновременно и генерировать два идентичных идентификатора.

Что мне нужно сделать, так это избегать одновременного доступа для чтения по всей таблице для других потоков, когда один поток уже считывает значение.

Есть ли способ добиться этого в MySQL без использования хранимых процедур? Я уже синхронизировал метод в моем приложении Java (используя spring JdbcTemplate) для чтения / записи в db.

Будет ли синхронизация метода Java хорошим способом реализовать это поведение, или я должен использовать хранимые процедуры, чтобы получить поведение?

...