MySQL的savepoint簡介及實例
寫在前面
本文看下MySQL的savepoint相關內容。
1:什么是savepoint
savepoint是事務中一個概念,允許在事務執(zhí)行的過程中暫存事務執(zhí)行到當前所產(chǎn)生的修改,這樣當我們需要回滾事務時就可以選擇回滾到某個保存點,而不用回滾整個事務。語法格式如下:
生成一個savepoint:
SAVEPOINT the_savepoint_name
回滾事務到某個savepoint:
ROLLBACK [WORK] TO [SAVEPOINT] the_savepoint_name
釋放暫存點:
RELEASE SAVEPOINT the_savepoint_name2:實例
如下表:
mysql> select * from words where id in (1,2); +----+------+ | id | word | +----+------+ | 1 | aaaa | | 2 | aaab | +----+------+ 2 rows in set (0.00 sec)
接下來我們分別對id為1,2的word都拼加字符串hi,并分別生成保存點,最終回滾到id為1的修改保存點,并提交事務,因此最終只有id=1的word會追加hi成功,操作如下:
mysql> start transaction with consistent snapshot; Query OK, 0 rows affected (0.00 sec) mysql> update words set word=concat(word,'hi') where id=1; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> savepoint sp_id_1; // 生成第一個暫存點 Query OK, 0 rows affected (0.00 sec) mysql> update words set word=concat(word,'hi') where id=2; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> savepoint sp_id_2; // 生成第二個暫存點 Query OK, 0 rows affected (0.00 sec) mysql> rollback to savepoint sp_id_1; // 回滾到第一個暫存點,則第一個暫存點之后的所有修改都會被回滾,但第一個暫存點之前的修改回被保留 Query OK, 0 rows affected (0.00 sec) mysql> commit; Query OK, 0 rows affected (0.06 sec) mysql> select * from words where id in (1,2); +----+--------+ | id | word | +----+--------+ | 1 | aaaahi | | 2 | aaab | +----+--------+ 2 rows in set (0.00 sec)
可以看到最終只要id=1的word值成功追加了hi。
寫在后面
參考文章列表
到此這篇關于MySQL的savepoint簡介及實例的文章就介紹到這了,更多相關MySQL savepoint內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MySQL利用profile分析慢sql詳解(group left join效率高于子查詢)
最近因為一個用了子查詢的sql語句查詢很慢,嚴重影響了性能,所以需要進行優(yōu)化,下面這篇文章主要跟大家介紹了關于MySQL利用profile分析慢sql的相關資料,文中介紹的非常詳細,需要的朋友們可以參考借鑒,下面來一起看看吧。2017-03-03
Mysql插入帶有引號的字符串數(shù)據(jù)最佳實踐
在MySQL中可以使用單引號或雙引號來包裹字符串,下面這篇文章主要給大家介紹了關于Mysql插入帶有引號的字符串數(shù)據(jù)的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-01-01
MySQL添加外鍵時報錯:1215 Cannot add the foreign key constraint的解決方法
大家都知道MySQL中經(jīng)常會需要創(chuàng)建父子表之間的約束,這個約束是需要建立在主外鍵基礎之上的,最近在MySQL添加外鍵時發(fā)現(xiàn)了一個報錯:1215 Cannot add the foreign key constraint,所以這篇文章就給大家介紹了如何解決在創(chuàng)建主外鍵約束過程中碰到的這個問題。2016-11-11

