0
爲什麼MySQL工作臺顯示未提交的更改?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;
那麼當查詢X. MySQL的返回一個空表的事務(也證實,該交易尚未自動在某個時間點犯下的。)
這與MySQL工作臺無關,它是Transaction/Commit的意思。所有的SQL服務器都這樣做。關鍵是你已經插入了新的價值,只是你沒有承諾改變。 – Aron
好的,但隔離級別「可重複讀取」高於「讀取已提交」級別。爲什麼我可以看到未提交的更改? – nrainer