MySQL 是一個流行的關系數據庫管理系統,支持事務的處理。事務是一組數據庫操作單元,包括 select、insert、update、delete 等一組操作,它們要么全部執行,要么全部不執行。MySQL 通過 CREATE TRANSACTION 語句來創建事務。
BEGIN; # 開始事務 INSERT INTO table1 VALUES(1); # 插入一條數據 UPDATE table2 SET col2=2; # 更新一列數據 COMMIT; # 提交事務
上述代碼中,BEGIN 開始事務,COMMIT 提交事務,兩個操作中間的三個語句即為事務的操作部分。事務執行過程中,如果出現錯誤,可以執行 ROLLBACK 命令來回滾事務。例如:
BEGIN; # 開始事務 INSERT INTO table1 VALUES(1); # 插入一條數據 UPDATE table2 SET col2=''; # 更新一列數據,設置為空值,模擬出錯 ROLLBACK; # 回滾事務
使用 ROLLBACK 命令可以撤銷已經執行的事務操作,使得事務回到 BEGIN 開始前的狀態。如果事務執行成功,則 COMMIT 命令提交事務即可。
MySQL 支持嵌套事務,即在一個事務中可以包含另一個事務。嵌套事務的語法如下:
BEGIN; # 外部事務開始 INSERT INTO table1 VALUES(1); # 插入一條數據 SAVEPOINT sp1; # 設置內部事務的保存點 INSERT INTO table1 VALUE (2); # 內部事務操作 ROLLBACK TO SAVEPOINT sp1; # 回滾內部事務 COMMIT; # 外部事務提交
在上例中,在外部事務中先插入一條數據,然后開始內部事務,并在內部事務中設置了一個保存點 sp1。當內部事務回滾時,只回滾到保存點 sp1,而不是完全回滾。內部事務執行完畢后,再提交外部事務。
上一篇Vue實現整體縮小
下一篇python 貪吃蛇游戲