为什么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时返回一个空表。(这确认事务在某个时间点没有自动提交。)
答案 0 :(得分:0)
原因是我总是处于同一个事务中(无论窗口选项卡如何)。