Можно ли ставить запросы клиентов в очередь на доступ к базе данных в MySQL. Я пытаюсь сделать это для управления параллелизмом. Блокировки MySQL можно использовать, но почему-то я не могу получить желаемый результат.
Фактически то, что я пытаюсь сделать, это:
- ВСТАВИТЬ что-то в новую строку
- ВЫБЕРИТЕ столбец из этой строки
- Сохраните это значение в переменной
Проблема возникает, когда два разных клиента выполняют INSERT одновременно, поэтому переменные для обоих клиентов сохраняют значение последнего INSERT.
Я работал со следующей альтернативой, но она не удалась в нескольких тестовых прогонах, и ошибка совершенно очевидна:
- ВСТАВИТЬ
- ЗАМОК Таблица
- ВЫБРАТЬ
- хранить
- РАЗБЛОКИРОВАТЬ
Благодарность!
1 ответ
Я думаю, что у вас есть столбец с автоинкрементом и вы хотите получить его значение после вставки строки. Один из вариантов — использовать LAST_INSERT_ID()
(подробности здесь и здесь).
Если это не применимо, пожалуйста, опубликуйте более подробную информацию. Что именно вы пытаетесь сделать и какие запросы выполняются?
SELECT
после получения LAST_INSERT_ID()
, чтобы включить более высокий параллелизм.
Похожие вопросы
Новые вопросы
php
PHP — это широко используемый язык сценариев общего назначения с открытым исходным кодом, мультипарадигмальный, динамически типизированный и интерпретируемый, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.