首頁 >資料庫 >mysql教程 >mysql需要commit嗎

mysql需要commit嗎

WBOY
WBOY原創
2022-04-27 19:04:334648瀏覽

在mysql中,是否需要commit取決於儲存引擎:1、若是不支援交易的儲存引擎,如myisam,則不需要使用commit;2、若是支援交易的儲存引擎,如innodb,則需要知道事務是否自動提交,因此需要使用commit。

mysql需要commit嗎

本教學操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。

mysql需要commit嗎

mysql在進行增刪改操作的時候需不需要commit,這得看你的儲存引擎。

  • 如果是不支援交易的引擎,如myisam,則是否commit都沒有效的。

  • 如果是支援事務的引擎,如innodb,則需要知道事物是否支援自動提交交易(即commit)#​​

##看自己的資料庫是否為自動commit,可以使用

mysql> show variables like '%autocommit%';

來進行查看,如果是OFF即不自動commit,需要手動commit操作(命令列可以直接“commit;“命令),否則是自動commit。

擴充知識:

提交資料有三種:明確提交、隱含提交、自動提交。

下面分 別說明這三種類型。

明確提交

用 COMMIT 指令直接完成的提交為明確提交。

隱含提交

用 SQL 指令間接完成的提交為隱含提交。這些指令是:

ALTER , AUDIT , COMMENT , CONNECT , CREATE , DISCONNECT , DROP , EXIT , GRANT , NOAUDIT , QUIT, REVOKE , RENAME 。

自動提交

若把AUTOCOMMIT 設為ON ,則在插入、修改、刪除語句執行後,

系統將自動進行提交,這就是自動提交。其格式為: SQL>SET AUTOCOMMIT ON ;

COMMIT / ROLLBACK這兩個指令用的時候要小心。 COMMIT / ROLLBACK 都是用在執行 DML語句(INSERT / DELETE / UPDATE / SELECT )之後的。 DML 語句,執行完之後,處理的數據,都會放在回滾段中(除了SELECT 語句),等待使用者提交(COMMIT)或回滾(ROLLBACK),當使用者執行COMMIT / ROLLBACK後,放在回滾段中的資料就會被刪除。

(SELECT 語句執行後,資料都存在共用池。提供給其他人查詢相同的資料時,直接在共用池中提取,不用再去資料庫中提取,提高了資料查詢的速度。)

所有的DML 語句都是要明確提交的,也就是說要在執行完DML語句之後,執行COMMIT 。而其他的諸如 DDL 語句的,都是隱式提交的。也就是說,在執行那些非 DML 語句後,資料庫已經進行了隱式提交,例如 CREATE TABLE,在運行腳本後,表已經建好了,並不在需要你再進行明確提交。

推薦學習:

mysql影片教學#

以上是mysql需要commit嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn