2016-03-07 2 views
-3

У меня есть 2 терминала в обоих из них. Я устанавливаю autocommit = 0 в первом терминале i вставляет 5 строк, а затем я набираю commit, который он предположил сейчас во втором терминале, я могу видеть обновления правильно? но это неверно. Мне нужно ввести commit во втором терминале, прежде чем я наберу «select * from table», почему это необходимо, может кто-нибудь объяснить мне?СУБД - КОМИТЕТ ПЕРЕД ВЫБОРОЧНЫМ ЗАПРОСОМ

+1

'commit' команда совершает данные для сессии, два терминала - два разных сеанса, вы должны сначала зафиксировать в первом терминале обновленные данные во втором терминале –

+0

, но в первом терминале я вставляю пару строк, а затем я нажал фиксацию, он предположил, что во втором терминале можно увидеть предыдущие изменения .. но для работы я сделал фиксацию до того, как попытаюсь просмотреть обновленную информацию –

+0

Я не могу понять, как вы можете «нажимать фиксацию» в терминале, вам нужно «набрать» фиксацию, чтобы на самом деле применить изменения. –

ответ

1

это выглядит странно, но, по словам mysql bug и blog entry ожидается поведение с уровнем REPEATABLE READ изоляции, уровень изменения в READ COMMITTED, чтобы избежать этой проблемы

set session transaction isolation level read committed; 
+0

не работал. то же самое, что и раньше, мне нужно сделать фиксацию до того, как я увижу обновленную информацию –

+1

@ Costas.K Вы выполнили это заявление в обоих терминалах? –

+0

плотина это сработало !! вы, черт возьми, прикольно, что именно читается уровень изоляции? –

Смежные вопросы