MYSQL как обеспечить выполнение одного запроса сразу за другим - PullRequest
1 голос
/ 19 августа 2011

У меня проблемы с одновременными подключениями. Как я могу убедиться, что один запрос выполняется сразу за другим, без запросов от других подключений между ними. Возможно, мне понадобится какая-то блокировка, но какая? ..или же? сделки?

Ответы [ 3 ]

3 голосов
/ 19 августа 2011

Выполните 2 запроса на уровне изоляции SERIALIZABLE - это гарантирует, что результат от 2 запросов будет точно таким же, как если бы они были только 2 выполненными запросами, блокируя каждую запись, к которой они обращаются, но безблокировка остальной части стола / столов.

1 голос
/ 19 августа 2011

Если вы используете механизм хранения innodb, вы можете использовать транзакцию, чтобы понять, что вы хотите. Просто выполните BEGIN перед обоими запросами и COMMIT после них.

0 голосов
/ 19 августа 2011

Вы можете использовать LOCK TABLE, чтобы запретить другим пользователям обновлять эту таблицу.

Ссылка
http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html

...