亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

MySQL事務處理實現方法步驟

發布時間:2020-07-13 16:26:02 來源:網絡 閱讀:396 作者:Tenderrain 欄目:MySQL數據庫

需求說明: 

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

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

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

A賬戶成功扣除轉賬金額后,B賬戶添加轉賬金額發生錯誤,使用事務回滾到初始狀態

提示:先建數據表account,字段包括姓名(username)、余額(money),再分別利用事務處理以上兩種情況。

#創建賬戶表  
CREATE TABLE IF NOT EXISTS account(  
  id INT(11)NOT NULL AUTO_INCREMENT PRIMARY KEY,  
  username VARCHAR(32)NOT NULL,  
  money DECIMAL(9,2)  
)ENGINE=INNODB;  
#插入用戶數據  
INSERT INTO account(username,money)VALUES('A',1000.00);  
INSERT INTO account(username,money)VALUES('B',200.00);  
  
/*事務處理*/  
#  A賬戶匯款失敗  
SELECT * FROM account;  
#第一步 關閉事務自動提交模式  
SET autocommit=0;  
#第二步 開始事務  
START TRANSACTION;  
#第三步 發現匯款失敗,將事務回滾ROLLBACK ||  匯款成功將事件commit  
#假設語法錯誤  
UPDATE account SET money=money-500 WHERE username='A';  
SELECT * FROM account;  
UPDATE account SET money=money+200 WHERE username='B';  
ROLLBACK;  
#第四步 還原Mysql數據庫的的自動提交  
SET autocommit=1;  
SELECT * FROM account;  
   
  
/*B接收匯款失敗*/  
SELECT *FROM account ;  
SET autocommit =0;  
START TRANSACTION;  
UPDATE account SET money=money-500 WHERE username='A';  
SELECT * FROM account ;  
#假設語法錯誤  
UPDATE account SET money=money+200 WHERE username ='B';  
ROLLBACK;  
SET autocommit =1;  
SELECT * FROM account;  
  
#清除數據  
<pre name="code" class="sql">TRUNCATE account;

備注:

使用IF NOT EXISTS創建數據表的解釋

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蒙山县| 淮北市| 讷河市| 西和县| 宁夏| 东港市| 贵溪市| 大理市| 得荣县| 册亨县| 兰考县| 宝清县| 荥经县| 漳州市| 时尚| 郧西县| 苏尼特左旗| 健康| 诏安县| 洱源县| 昔阳县| 全椒县| 马关县| 德昌县| 财经| 佛教| 仲巴县| 布尔津县| 富川| 内丘县| 临城县| 兴隆县| 寿阳县| 徐汇区| 环江| 吉首市| 岑巩县| 扶绥县| 平顶山市| 赣州市| 温泉县|