Не могу сразу увидеть вставленные данные из MySQL - PullRequest
1 голос
/ 05 октября 2011

Я использую JDBC. Моё тестовое приложение вставляет некоторые данные в MySQL, а затем запрашивает их через одно и то же соединение. У меня четыре компьютера, один - сервер MySQL, три - рабочие столы UBuntu. В одном UBuntu Desktop мое тестовое приложение запускается в эта проблема, но я не нахожу эту проблему в других рабочих столах UBuntu. Кроме того, если я создаю новое соединение для запроса данных после вставки, я могу найти данные. Версия Библиотека mysql-connector-java - 5.1.17. Я пробовал 5.1.18, но проблема все еще существует.

1 Ответ

3 голосов
/ 05 октября 2011

Уровень изоляции по умолчанию для MySQL - «REAPEATABLE READ», это означает, что если вы не используете автокоммит в своем инструменте запросов, вы не увидите зафиксированные данные из других транзакций, если вы не завершите свою собственную транзакцию, введя COMMIT или ROLLBACK.

Тот факт, что вы можете видеть данные после создания нового соединения, также указывает на это направление.

Таким образом, у вас есть две опции

  1. изменить уровень изоляции дляваши «запросные» соединения с «READ COMMITTED»
  2. передают команду COMMIT (или ROLLBACK) в инструменте запросов перед запуском SELECT
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...