1. 程式人生 > >mysql事務回滾

mysql事務回滾

技術分享 default null 刪除 inf nod .com efault 人員

mysql使用事務前需確定存儲引擎為innodb,譬如刪除一個人員數據,會刪除和這個人有關的一些數據刪除,這個時候就會用到事務,出現一個刪除錯誤整個刪除事務就會取消。

事務回滾步驟:

/*創建roll表*/
CREATE TABLE roll(
id int unsigned primary key auto_increment comment ‘主鍵‘,
names varchar(64) not null default ‘‘ comment ‘姓名‘
)CHARSET =UTF8 ENGINE =INNODB;

引擎為INNODB;

/*由於字段太少又插入了一條擁有金額*/

ALTER TABLE roll ADD money float not null default ‘0.0‘ comment ‘擁有金額‘;

/*插入數據*/
INSERT INTO roll VALUES
(null,‘lily‘,‘1000.8‘),
(null,‘lucy‘,‘2009.7‘),
(null,‘liming‘,‘3009‘);

所建表如下:

技術分享圖片

技術分享圖片

回滾事務步驟如下:

  首先開始一個事務代碼如下:

技術分享圖片

  做一個保存點a代碼如下:

技術分享圖片

  執行一個刪除動作代碼如下:

技術分享圖片

  再次查詢表的內容:

技術分享圖片

  如果感覺執行操作有問題可以選擇回滾到a保存點最後查詢數據回到最開始狀態代碼如下:

技術分享圖片

註意:如果感覺代碼沒問題可以執行一個commit,執行完畢以後事務無法再回退.

技術分享圖片

mysql事務回滾