MySQL工作台是否显示未提交的更改?

时间:2013-06-21 09:14:50

标签: mysql sql transactions mysql-workbench rollback

为什么MySQL工作台会显示未提交的更改?

-- create a new empty table
DROP TABLE IF EXISTS X;
CREATE TABLE X (val varchar(10));

-- disable autocommit
SET AUTOCOMMIT = 0;

-- insert a row without committing
INSERT INTO X (val) VALUES ('text');

此时

SELECT @@autocommit, @@tx_isolation;

返回

| 0 | REPEATABLE-READ |

但是,查询显示尚未提交的值:

SELECT * FROM X;

|文字|

为什么MySQL会返回包含未提交数据的结果集?

如果我使用

回滚交易
ROLLBACK;

然后MySQL在查询X时返回一个空表。(这确认事务在某个时间点没有自动提交。)

1 个答案:

答案 0 :(得分:0)

原因是我总是处于同一个事务中(无论窗口选项卡如何)。