top
Loading...
13.4.4.SAVEPOINT和ROLLBACKTOSAVEPOINT語法
13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT語法
SAVEPOINT identifier
ROLLBACK [WORK] TO SAVEPOINT identifier
RELEASE SAVEPOINT identifier

InnoDB支持SQL語句SAVEPOINT, ROLLBACK TO SAVEPOINT, RELEASE SAVEPOINT和自選的用于ROLLBACKWORK關鍵詞。

SAVEPOINT語句用于設置一個事務保存點,帶一個標識符名稱。如果當前事務有一個同樣名稱的保存點,則舊的保存點被刪除,新的保存點被設置。

ROLLBACK TO SAVEPOINT語句會向以命名的保存點回滾一個事務。如果在保存點被設置后,當前事務對行進行了更改,則這些更改會在 回滾中被撤銷。但是,InnoDB不會釋放被存儲在保存點之后的存儲器中的行鎖定。(注意,對于新插入的行,鎖定信息被存儲在行中的事務ID承載;鎖定沒有被分開存儲在存儲器中。在這種情況下,行鎖定在撤銷中被釋放。)在被命名的保存點之后設置的保存點被刪除。

如果語句返回以下錯誤,則意味著不存在帶有指定名稱的保存點:

ERROR 1181: Got error 153 during ROLLBACK

RELEASE SAVEPOINT語句會從當前事務的一組保存點中刪除已命名的保存點。不出現提交或 回滾。如果保存點不存在,會出現錯誤。

如果您執行COMMIT或執行不能命名保存點的ROLLBACK,則當前事務的所有保存點被刪除。

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html
北斗有巢氏 有巢氏北斗