2016-03-07 69 views
-3

我有两个终端在他们我设置autocommit = 0在第一个终端我插入5行,然后我键入承诺它应该现在在第二个终端,我可以看到更新正确吗?但这不是真的,我需要在第二个终端中键入提交之前,我键入'select * from table'为什么这是必要的有人可以解释我吗?数据库管理系统 - 提交前查询

+1

'commit'命令会议提交的数据,两个终端 - 两个不同的会话,你必须先在第一个终端中提交,以查看第二个终端中的更新数据 –

+0

是的,但是在第一个终端中我插入了几行,然后我按下提交,它假定在第二个终端中能够看到以前的变化..但我已经作出承诺之前,我尝试查看更新的信息 –

+0

我无法理解你如何在终端中按“提交”,你必须“键入”提交以实际应用更改 –

回答

1

它看起来怪异,但根据mysql bugblog entry预计与REPEATABLE READ隔离级别,改变一级READ COMMITTED行为,以避免这个问题

set session transaction isolation level read committed; 
+0

没有工作..与以前一样,我需要做出承诺之前,我看到更新的信息 –

+1

@ Costas.K你有没有在两个终端执行此声明?它工作的大坝 –

+0

!你该死的,屁股究竟隔绝了什么? –