Мне любопытно, есть ли способ сделать блок запроса (ждать) до тех пор, пока не будут вставлены новые строки?Запрос блока Mysql до тех пор, пока не будет обновлен
-4
A
ответ
1
Есть два случая, я могу видеть, чтобы заставлять Вас поднять этот вопрос:
Большие партии
INSERT
отчетность, а именно:INSERT INTO mytable (id, name, date) VALUES (1, 'Tom', '2013-01-31'), (2, 'Dick', '2013-02-28'), (3, 'Harry', '2013-03-31'), ...
В этом случае MySQL делает замок внутренне, так что вам не нужно ничего делать. Любые запросы, требующие использования «mytable», будут отложены до тех пор, пока вставка не будет завершена.
Повторяющееся одиночные
INSERT
заявления, то есть:INSERT INTO mytable (id, name, date) VALUES (1, 'Tom', '2013-01-31'); INSERT INTO mytable (id, name, date) VALUES (2, 'Dick', '2013-02-28'); INSERT INTO mytable (id, name, date) VALUES (3, 'Harry', '2013-03-31'); ...
В это случае таблица разблокирует между утверждениями и единственным способом правильно «запереть» таблица использовать transaction. [Примечание: myISAM не поддерживает транзакции, вы должны использовать таблицы InnoDB или BDB. то есть:
START TRANSACTION; INSERT INTO mytable (id, name, date) VALUES (1, 'Tom', '2013-01-31'); INSERT INTO mytable (id, name, date) VALUES (2, 'Dick', '2013-02-28'); INSERT INTO mytable (id, name, date) VALUES (3, 'Harry', '2013-03-31'); ... COMMIT;
Смежные вопросы
- 1. Git уже обновлен до тех пор, пока я не сброшу
- 2. sequelize (SQL) ждать до тех пор пока массив был обновлен
- 3. Повторяйте процесс до тех пор, пока не будет выполнено условие
- 4. Объект не полностью создан до тех пор, пока не будет обновлен KeyListener
- 5. Не нажимайте до тех пор, пока не будет отпущена кнопка
- 6. Fetch Row до тех пор, пока количество не будет выполнено
- 7. Блокировать до тех пор, пока не будет доступен DataInputStream
- 8. разрешить обещание до тех пор, пока не будет изменено состояние
- 9. Пытается повторить до тех пор, пока условие не будет ложным
- 10. wget force retry до тех пор, пока не будет соединение
- 11. Стоп setInterval до тех пор, пока действие не будет выполнено?
- 12. Selenium Keep До тех пор, пока текст не будет найден
- 13. Скрытие содержимого до тех пор, пока MathJax не будет завершено
- 14. Голанг до тех пор, пока не будет нажата клавиша
- 15. Выполнение оценки До тех пор, пока не будет 0
- 16. Повторить до тех пор, пока не будет RuntimeWarning
- 17. nightwatch.js - прокрутка до тех пор, пока элемент не будет виден
- 18. Итерация до тех пор, пока не будет нажата клавиша C
- 19. Android-поток ждать до тех пор, пока не будет видно
- 20. Реагирующие события буферов до тех пор, пока не будет запрошен
- 21. Петля Javascript до тех пор, пока не будет выполнено условие
- 22. Выполнение действия до тех пор, пока не будет выполнено условие
- 23. Отключить hashchange до тех пор, пока не будет остановлен scrollling
- 24. Чтение номеров до тех пор, пока не будет выполнено условие
- 25. Метод ожидания до тех пор, пока не будет зафиксировано событие
- 26. MongoDB блокировка до тех пор, пока не будет найден результат
- 27. Ввод строки до тех пор, пока точка не будет введена
- 28. Сохраняйте SocketServer до тех пор, пока рамка не будет закрыта.
- 29. Java wait до тех пор, пока не будет установлена переменная
- 30. Затухание JButton до тех пор, пока не будет выбран JCheckbox
Не совсем уверен, что вы имеете в виду. Может быть, [это] (http://dev.mysql.com/doc/refman/5.0/en/commit.html) поможет? Вы можете сохранить изменения до тех пор, пока не будете готовы ** совершить ** их. Я думаю, что это похоже на блок ... – War10ck
В чем смысл? Почему бы просто не запустить запрос после ввода строк? Это помогло бы понять, в чем причина этого: –
Насколько я понимаю, вставки будут блокировать операции чтения до их завершения. – landons