天天看點

mysql事務和注意事項一、事務二、事務和鎖三、事務注意事項

一、事務

用于保證資料的一緻性,由一組相關的dml語句組成,這組dml語句要麼全部成功,要麼全部失敗。

mysql事務和注意事項一、事務二、事務和鎖三、事務注意事項

二、事務和鎖

當執行事務操作時(dml語句),mysql會在表上加鎖,防止其它使用者改表的資料,對使用者來說十分重要。

mysql資料庫控制台事務的重要操作

1.start transaction -- 開始一個事務

2.savepoint 儲存點名 -- 設定儲存點

3.rollback to 儲存點名-- 回退事務

4.rollback -- 回退全部事務

5.commit -- 送出事務,不能回退

-- 事務操作
CREATE TABLE db18(
id INT,
`name` VARCHAR(32)
);
-- 開始事務
START TRANSACTION
-- 設定儲存點
SAVEPOINT a
-- 執行操作
INSERT INTO db18 VALUES(1,'小王')
SELECT*FROM db18

SAVEPOINT b
-- 執行操作
INSERT INTO db18 VALUES(2,'小名')
-- 回退到b
ROLLBACK TO b
-- 回退到a
ROLLBACK TO a
-- 回退到最開始的地方
ROLLBACK 
COMMIT
           

三、事務注意事項

-- 事務注意事項
-- 不開始事務,預設情況下,dml操作會自動送出
INSERT INTO db18 VALUES(3,'小紅')
SELECT*FROM db18
-- 開始一個事務,沒有建立儲存點,可以執行rollback,預設回到事務開始的時候
START TRANSACTION
INSERT INTO db18 VALUES(3,'小黑')
INSERT INTO db18 VALUES(4,'小強')
ROLLBACK
COMMIT
-- 可以在事務中建立多個儲存點
-- 在沒有送出事務前,可以選擇回退到哪個儲存點
-- mysql的事務機制需要innodb的存儲引擎才可以使用,myisam不好用
-- 開始一個事務 start transaction,set autocommit = off
           

繼續閱讀