27.1、說明:
預設情況下, MySQL啟用自動送出模式(變量autocommit為ON)。這意味着, 隻要你執行DML操作的語句,
MySQL會立即隐式送出事務(Implicit Commit)。這個跟SQL Server基本是類似的,與oralce是相反的。
27.2、檢視autocommit模式:
1、說明:
由于變量autocommit分會話(session)系統變量與全局(global)系統變量,是以查詢的時候,最好差別是會話
系統變量還是全局系統變量。
session:目前會話有效,也就是目前連接配接。
global:全局,不包含目前連接配接,之後新擷取的連接配接都會生效,重新開機mysql服務失效。
2、檢視會話系統變量:
show session variables like 'autocommit';
(2)檢視全局系統變量:
show global variables like 'autocommit';
(3)補充:
Value的值為ON表示autocommit開啟,OFF表示autocommit關閉。
27.3、設定目前會話用戶端生效:
1、設定會話系統變量:
set session autocommit=0;
2、檢視會話系統變量:
show session variables like 'autocommit';
27.4、設定全局會話用戶端有效,重新開機mysql服務失效:
1、設定全局系統變量:
set global autocommit=0;
2、重新打開一個session連接配接,檢視全局系統變量:
show global variables like 'autocommit';
27.5、配置my.cnf檔案,永久生效:
1、編輯my.cnf檔案:
[mysqld]
autocommit=0
2、重新開機mysql服務。
27.5、補充:
還有種配置方式,如下所示,這種方式從MySQL 5.6開始已經不生效了,必須用'autocommit=0'這種方式替換。
1、my.cnf配置檔案配置:
[mysqld]
init_connect="SET autocommit=0"
2、全局系統變量配置:
mysql> select version();
mysql> set global init_connect='SET autocommit=0';
/*隻能使用global,因為init_connect是全局系統變量
*/
mysql> show global variables like 'init_connect';
27.6、注意:
在不同的連接配接(session)下,使用'commit;'是互相不影響的。