真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MySQL中有哪些事務控制語句

今天就跟大家聊聊有關MySQL中有哪些事務控制語句,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

站在用戶的角度思考問題,與客戶深入溝通,找到海原網(wǎng)站設計與海原網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站建設、成都網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、雅安服務器托管、企業(yè)郵箱。業(yè)務覆蓋海原地區(qū)。

事務SQL 控制語句

MySQL事務遵從ACID:

? Atomic(原子性):所有語句作為一個單元全部成功執(zhí)行或全部取消。

? Consistent(一致性):如果數(shù)據(jù)庫在事務開始時處于一致狀態(tài),則在執(zhí)行該事務期間將保留一致狀態(tài)。

? Isolated(隔離性):事務之間不相互影響。

? Durable(持久性):事務成功完成后,所做的所有更改都會準確地記錄在數(shù)據(jù)庫中。所做的更改不會丟失

1) 事務SQL 控制語句

? START TRANSACTION(或BEGIN):顯式開始一個新事務

? SAVEPOINT:分配事務過程中的一個位置,以供將來引用

? COMMIT:永久記錄當前事務所做的更改

? ROLLBACK:取消當前事務所做的更改

? ROLLBACK TO SAVEPOINT:取消在savepoint 之后執(zhí)行的更改

? RELEASE SAVEPOINT:刪除savepoint 標識符

? SET AUTOCOMMIT:為當前連接禁用或啟用默認autocommit 模式

2) AUTOCOMMIT 模式

如何設置 AUTOCOMMIT 模式?jīng)Q定了如何以及何時開始新事務。默認情況下,AUTOCOMMIT 處于全局啟用狀態(tài),這意味著會強制每個 SQL 語句隱式開始一個新事務??梢酝ㄟ^一個選項文件全局禁用 AUTOCOMMIT,也可以通過設置 autocommit 變量為每個會話禁用它。啟用 AUTOCOMMIT 會限制每個語句,并進而影響其自身事務中的事務表。這樣可以有效地防止在一個事務中執(zhí)行多個語句。這意味著,您將無法通過 COMMIT 或 ROLLBACK 作為一個單元提交或回滾多個語句。有時,會將這種情況誤認為根本沒有事務。但是,情況并非如此。啟用 AUTOCOMMIT 后,每個語句仍會以原子方式執(zhí)行。例如,通過在插入多個行時比較違反約束限制的效果,便可看出啟用 AUTOCOMMIT 和根本不具有事務之間的差別。在非事務表(如 MyISAM)中,一旦發(fā)生錯誤,語句就會終止,已經(jīng)插入的行會保留在該表中。而對于 InnoDB 表,已經(jīng)插入的所有行都會從該表中刪除,從而不會產(chǎn)生任何實際影響。

AUTOCOMMIT確定開始新事務的方式和時間;默認情況下, AUTOCOMMIT 模式處于啟用狀態(tài):作為一個事務隱式提交每個語句;

在my.cnf中將 AUTOCOMMIT 模式設置為 0,或者SET GLOBAL AUTOCOMMIT=0;SET SESSION AUTOCOMMIT=0; SET @@AUTOCOMMIT :=0; 則禁用 AUTOCOMMIT,事務會跨越多個語句,需要使用 COMMIT 或 ROLLBACK 結(jié)束事務;

使用 SELECT 檢查 AUTOCOMMIT 設置:

SELECT @@AUTOCOMMIT;

3) 隱式提交

COMMIT 語句始終會顯式提交當前事務。其他事務控制語句(例如,本幻燈片列出的語句)還具有隱式提交當前事務的作用。除了這些事務控制語句之外,其他類型的語句可能也具有隱式提交并進而終止)當前事務的作用。這些語句的行為就像在執(zhí)行實際語句之前發(fā)出 COMMIT 一樣。此外,這些語句本身并非事務語句,也就是說,如果成功,則無法回滾。通常,數(shù)據(jù)定義語句、據(jù)訪問和用戶管理語句以及鎖定語句具有這種效果。

注:有很多例外情況,而且這些語句并非都能在所有版本的服務器上導致隱式提交。但是,建議將所有非 DML 語句都視為可導致隱式提交。有關導致隱式提交的完整語句列表,請參閱《MySQL 參考手冊》:http://dev.mysql.com/doc/refman/5.6/en/implicit-commit.html

隱式提交會終止當前事務。用于隱式提交的 SQL 語句:

l  START TRANSACTION

l  SET AUTOCOMMIT = 1

導致提交的非事務語句:

l  數(shù)據(jù)定義語句(ALTER、 CREATE 和 DROP)

l  管理語句(GRANT、 REVOKE 和 SET PASSWORD)

l  鎖定語句(LOCK TABLES 和 UNLOCK TABLES)

導致隱式提交的語句示例:

Mysql>TRUNCATE TABLE

Mysql>LOAD DATA INFILE

4) 事務存儲引擎

使用 SHOW ENGINES 列出引擎特征:

mysql> SHOW ENGINES\G

********************* 2. row *********************

Engine: InnoDB

Support: DEFAULT

Comment: Supports transactions, row-level locking,

and foreign keys

Transactions: YES

XA: YES

Savepoints: YES

********************* 1. row *********************

Engine: MyISAM

Support: YES

Comment: MyISAM storage engine

Transactions: NO

XA: NO

Savepoints: NO

看完上述內(nèi)容,你們對MySQL中有哪些事務控制語句有進一步的了解嗎?如果還想了解更多知識或者相關內(nèi)容,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


網(wǎng)站名稱:MySQL中有哪些事務控制語句
文章網(wǎng)址:http://weahome.cn/article/iigeig.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部