为什么 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 | 可重复阅读 |
但是,查询显示尚未提交的值:
SELECT * FROM X;
| 正文 |
为什么 MySQL 返回带有未提交数据的结果集?
如果我使用回滚事务
ROLLBACK;
然后 MySQL 在查询 X 时返回一个空表。(这确认事务在某个时间点没有自动提交。)