MySQL交易處理實現方法步驟

來源:互聯網
上載者:User

標籤:使用者   nbsp   blog   tail   代碼   copy   mysq   comm   href   

需求說明: 

案例背景:銀行的轉賬過程中,發生意外是在所難免。為了避免意外而造成不必要的損失,使用交易處理的方式進行處理:

A賬戶現有餘額1000元,向餘額為200的B賬戶進行轉賬500元。可能由於某原因: 

A賬戶在扣除轉賬金額時發生錯誤,使用交易回復來返回到初始狀態

A賬戶成功扣除轉賬金額後,B賬戶添加轉賬金額發生錯誤,使用交易回復到初始狀態

提示:先建資料表account,欄位包括姓名(username)、餘額(money),再分別利用交易處理以上兩種情況。

[sql] view plain copy  
  1. #建立賬戶表  
  2. CREATE TABLE IF NOT EXISTS account(  
  3.   id INT(11)NOT NULL AUTO_INCREMENT PRIMARY KEY,  
  4.   username VARCHAR(32)NOT NULL,  
  5.   money DECIMAL(9,2)  
  6. )ENGINE=INNODB;  
  7. #插入使用者資料  
  8. INSERT INTO account(username,money)VALUES(‘A‘,1000.00);  
  9. INSERT INTO account(username,money)VALUES(‘B‘,200.00);  
  10.   
  11. /*交易處理*/  
  12. #  A賬戶匯款失敗  
  13. SELECT * FROM account;  
  14. #第一步 關閉事務自動認可模式  
  15. SET autocommit=0;  
  16. #第二步 開始事務  
  17. START TRANSACTION;  
  18. #第三步 發現匯款失敗,將交易回復ROLLBACK ||  匯款成功將事件commit  
  19. #假設語法錯誤  
  20. UPDATE account SET money=money-500 WHERE username=‘A‘;  
  21. SELECT * FROM account;  
  22. UPDATE account SET money=money+200 WHERE username=‘B‘;  
  23. ROLLBACK;  
  24. #第四步 還原Mysql資料庫的的自動認可  
  25. SET autocommit=1;  
  26. SELECT * FROM account;  
  27.    
  28.   
  29. /*B接收匯款失敗*/  
  30. SELECT *FROM account ;  
  31. SET autocommit =0;  
  32. START TRANSACTION;  
  33. UPDATE account SET money=money-500 WHERE username=‘A‘;  
  34. SELECT * FROM account ;  
  35. #假設語法錯誤  
  36. UPDATE account SET money=money+200 WHERE username =‘B‘;  
  37. ROLLBACK;  
  38. SET autocommit =1;  
  39. SELECT * FROM account;  
  40.   
  41. #清除資料  
  42. <pre name="code" class="sql">TRUNCATE account;  

MySQL交易處理實現方法步驟

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.