91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

广德县| 平乐县| 响水县| 西贡区| 广安市| 通海县| 布拖县| 舞钢市| 都昌县| 延吉市| 邻水| 抚宁县| 司法| 商城县| 和政县| 江西省| 南郑县| 松江区| 从化市| 噶尔县| 盘山县| 东明县| 河池市| 那坡县| 金堂县| 普格县| 惠东县| 马龙县| 攀枝花市| 凤冈县| 临湘市| 邵阳县| 遂川县| 临安市| 花莲市| 定日县| 乐昌市| 四平市| 达日县| 天门市| 寻甸|