MySQL何時隱式提交或回滾一個事務(wù)? |
發(fā)布時間: 2012/8/24 17:35:06 |
MySQL以默認允許autocommit模式來開始每一個客戶端連接。當autocommit被允許之時,如果SQL語句不返回錯誤的話,MySQL在每個SQL語句之后,做一個提交。 如果你關(guān)閉autocommit模式并且關(guān)閉一個連接而不調(diào)用你的事務(wù)的明確提交,則MySQL回滾你的事務(wù)。
如果SQL語句返回一個錯誤,提交/回滾行為取決于這個錯誤。請參閱15.2.15節(jié),“InnoDB錯誤處理”。 下列每一個語句(以及它們的任何同義詞)隱式結(jié)束一個事務(wù),就好像在執(zhí)行這個語句之前你做了一個COMMIT: · ALTER FUNCTION, ALTER PROCEDURE, ALTER TABLE, BEGIN, CREATE DATABASE, CREATE FUNCTION, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, DROP DATABASE, DROP FUNCTION, DROP INDEX, DROP PROCEDURE, DROP TABLE, LOAD MASTER DATA, LOCK TABLES, RENAME TABLE, SET AUTOCOMMIT=1, START TRANSACTION, TRUNCATE, UNLOCK TABLES.
· UNLOCK TABLES 僅在如果任何表當前被鎖定之時,提交一個事務(wù)。 · 在InnoDB中的CREATE TABLE語句被作為一個單獨的事務(wù)來處理。這意味著來自用戶的ROLLBACK不撤銷用戶在事務(wù)過程中生成的CREATE TABLE語句。
事務(wù)不能被嵌套。當你發(fā)出START TRANSACTION語句或與之同義的語句之時,這是對任何當前事務(wù)隱式提交的一個結(jié)果。 本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |