溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySql需要commit嗎

發(fā)布時間:2021-07-19 11:32:38 來源:億速云 閱讀:255 作者:小新 欄目:MySQL數(shù)據(jù)庫

小編給大家分享一下MySql需要commit嗎,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

mysql在進(jìn)行如插入(insert)操作的時候需不需要commit,這得看你的存儲引擎,

如果是不支持事務(wù)的引擎,如myisam,則是否commit都沒有效的。

如果是支持事務(wù)的引擎,如innodb,則得知道你事物支持是否自動提交事務(wù)(即commit)

看自己的數(shù)據(jù)庫是否是自動commit,可以使用mysql> show variables like '%autocommit%';來進(jìn)行查看,如果是OFF即不自動commit,需要手動commit操作(命令行可以直接“commit;“命令),否則是自動commit。

提交數(shù)據(jù)有三種類型:顯式提交、隱式提交及自動提交。

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

顯式提交

用 COMMIT 命令直接完成的提交為顯式提交。

隱式提交

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

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

自動提交

若把 AUTOCOMMIT 設(shè)置為 ON ,則在插入、修改、刪除語句執(zhí)行后,

系統(tǒng)將自動進(jìn)行提交,這就是自動提交。其格式為: SQL>SET AUTOCOMMIT ON ;

COMMIT / ROLLBACK這兩個命令用的時候要小心。 COMMIT / ROLLBACK 都是用在執(zhí)行 DML語句(INSERT / DELETE / UPDATE / SELECT )之后的。DML 語句,執(zhí)行完之后,處理的數(shù)據(jù),都會放在回滾段中(除了 SELECT 語句),等待用戶進(jìn)行提交(COMMIT)或者回滾 (ROLLBACK),當(dāng)用戶執(zhí)行 COMMIT / ROLLBACK后,放在回滾段中的數(shù)據(jù)就會被刪除。(SELECT 語句執(zhí)行后,數(shù)據(jù)都存在共享池。提供給其他人查詢相同的數(shù)據(jù)時,直接在共享池中提取,不用再去數(shù)據(jù)庫中提取,提高了數(shù)據(jù)查詢的速度。)

所有的 DML 語句都是要顯式提交的,也就是說要在執(zhí)行完DML語句之后,執(zhí)行 COMMIT 。而其他的諸如 DDL 語句的,都是隱式提交的。也就是說,在運(yùn)行那些非 DML 語句后,數(shù)據(jù)庫已經(jīng)進(jìn)行了隱式提交,例如 CREATE TABLE,在運(yùn)行腳本后,表已經(jīng)建好了,并不在需要你再進(jìn)行顯式提交。

以上是“MySql需要commit嗎”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI