我使用 .deb 在 Ubuntu 系统中安装了 MySQL Workbench (community-6.2.3)。
工作台会话似乎没有看到其他会话(应用程序/命令行客户端)对数据库完成的更新(DML)。
新会话能够在启动时看到数据库的正确状态,但随后发生的更改对其不可见。
在工作台中提交后,工作台会话似乎确实与数据库同步。
我越来越Error Code: 1412. Table definition has changed, please retry transaction
当我尝试查询从不同会话创建的表时。
非工作台会话似乎没有任何这些问题。
我是否缺少配置或其他什么?
Update:
这在一定程度上是预期的行为,并且部分是一个错误.
I'm 不使用自动提交模式, 在这种情况下SELECT
语句使用第一次读取时建立的快照执行。
这是 MySQL Workbench 使用的 REPEATABLE READ 隔离级别的行为。
有没有办法更改或设置 MySQL Workbench 会话的默认隔离级别?
在工作台中执行时:
SELECT @@Global.tx_isolation, @@tx_isolation, @@session.tx_isolation;
returns:
READ-COMMITTED, REPEATABLE-READ, REPEATABLE-READ
与在命令行客户端中相反:
READ-COMMITTED, READ-COMMITTED, READ-COMMITTED
Related:
MySQL REPEATABLE-READ Workbench 事务级别未设置
MySQL Workbench 和默认会话隔离级别