У меня есть 2 терминала в обоих из них. Я устанавливаю autocommit = 0 в первом терминале i вставляет 5 строк, а затем я набираю commit, который он предположил сейчас во втором терминале, я могу видеть обновления правильно? но это неверно. Мне нужно ввести commit во втором терминале, прежде чем я наберу «select * from table», почему это необходимо, может кто-нибудь объяснить мне?СУБД - КОМИТЕТ ПЕРЕД ВЫБОРОЧНЫМ ЗАПРОСОМ
ответ
это выглядит странно, но, по словам mysql bug и blog entry ожидается поведение с уровнем REPEATABLE READ
изоляции, уровень изменения в READ COMMITTED
, чтобы избежать этой проблемы
set session transaction isolation level read committed;
не работал. то же самое, что и раньше, мне нужно сделать фиксацию до того, как я увижу обновленную информацию –
@ Costas.K Вы выполнили это заявление в обоих терминалах? –
плотина это сработало !! вы, черт возьми, прикольно, что именно читается уровень изоляции? –
'commit' команда совершает данные для сессии, два терминала - два разных сеанса, вы должны сначала зафиксировать в первом терминале обновленные данные во втором терминале –
, но в первом терминале я вставляю пару строк, а затем я нажал фиксацию, он предположил, что во втором терминале можно увидеть предыдущие изменения .. но для работы я сделал фиксацию до того, как попытаюсь просмотреть обновленную информацию –
Я не могу понять, как вы можете «нажимать фиксацию» в терминале, вам нужно «набрать» фиксацию, чтобы на самом деле применить изменения. –