MySQL - Explicit Commit / Implicit Commit / Autocommit
27 Apr 2023sql
資料庫提交數據的三種類型:
顯式提交 (Explicit Commit)
用 COMMIT 命令完成提交,例如:
select * from dept;
commit;
隱式提交 (Implicit Commit)
運行某些指令之後資料庫自動完成,不需要再做 COMMIT,例如:
CREATE TABLE Persons (
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
隱式提交的指令有:CREATE TABLE、DROP TABLE 等,這些指令各自被視作單一的 transaction,因此執行完畢做 ROLLBACK 不會有用。更多可以參考 Statements That Cause an Implicit Commit。
自動提交 (Autocommit)
如果 autocommit mode 開啟的話,每一個 SQL statement 都將被視作單一的 transaction,不需要 COMMIT,會自動完成提交。MySQL 默認 autocommit mode 開啟。
可以用
SELECT @@autocommit指令確認 autocommit mode 是否開啟,是的話值為 1。