新聞中心
定義MySQL事務應該是每一個MySQL數(shù)據(jù)庫用戶都應該會的,下面就將為您講解如何定義MySQL事務,希望對您有所幫助。

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都網(wǎng)站制作、做網(wǎng)站、外貿營銷網(wǎng)站建設、豐順網(wǎng)絡推廣、小程序設計、豐順網(wǎng)絡營銷、豐順企業(yè)策劃、豐順品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供豐順建站搭建服務,24小時服務熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
MySQL默認的行為是在每條SQL語句執(zhí)行后執(zhí)行一個COMMIT語句,從而有效的將每條語句獨立為一個事務。
在復雜的應用場景下這種方式就不能滿足需求了。
為了打開事務,允許在COMMIT和ROLLBACK之前多條語句被執(zhí)行,我們需要做以下兩步:
1, 設置MySQL的autocommit屬性為0,默認為1
2,使用START TRANSACTION語句顯式的打開一個事務
如果已經打開一個事務,則SET autocommit=0不會起作用,因為START TRANSACTION會隱式的提交session中所有當前的更改,結束已有的事務,并打開一個新的事務。
使用SET AUTOCOMMIT語句的存儲過程例子:
- CREATE PROCEDURE tfer_funds
- (from_account int, to_account int, tfer_amount numeric(10,2))
- BEGIN
- SET autocommit=0;
- UPDATE account_balance SET balancebalance=balance-tfer_amount WHERE account_id=from_account;
- UPDATE account_balance SET balancebalance=balance+tfer_amount WHERE account_id=to_account;
- COMMIT;
- END;
以上定義MySQL事務的方法介紹。
【編輯推薦】
mysql存儲過程問題解答
創(chuàng)建MySQL存儲過程示例
mysql存儲過程的調用方法
MYSQL IFNULL函數(shù)的使用
帶您了解MySQL GROUP_CONCAT函數(shù)
本文標題:定義MySQL事務的例子
轉載來源:http://www.dlmjj.cn/article/dpddijg.html


咨詢
建站咨詢
