mysql之savepoint

savepoint可以将事务回滚至指定位置。

mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> select   * from planet_user_blacklist;
+----+----------+------------+------------+----------+---------------------------------+
| id | uid      | created_at | updated_at | add_type | address                         |
+----+----------+------------+------------+----------+---------------------------------+
|  1 | 29904034 |          1 |          2 |        0 | 广州市番禺区番禺广场1           |
|  2 |  2839939 |          2 |          2 |        0 | 广州市番禺区南村2               |
+----+----------+------------+------------+----------+---------------------------------+
2 rows in set (0.00 sec)

mysql> update planet_user_blacklist set updated_at = 100 where id = 1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> savepoint test1;
Query OK, 0 rows affected (0.00 sec)

mysql> update planet_user_blacklist set updated_at = updated_at +1000 where id = 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select   * from planet_user_blacklist;
+----+----------+------------+------------+----------+---------------------------------+
| id | uid      | created_at | updated_at | add_type | address                         |
+----+----------+------------+------------+----------+---------------------------------+
|  1 | 29904034 |          1 |       1100 |        0 | 广州市番禺区番禺广场1           |
|  2 |  2839939 |          2 |          2 |        0 | 广州市番禺区南村2               |
+----+----------+------------+------------+----------+---------------------------------+
2 rows in set (0.00 sec)

mysql> rollback to test1;
Query OK, 0 rows affected (0.00 sec)

mysql> update planet_user_blacklist set updated_at = updated_at +10000 where id = 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select   * from planet_user_blacklist;
+----+----------+------------+------------+----------+---------------------------------+
| id | uid      | created_at | updated_at | add_type | address                         |
+----+----------+------------+------------+----------+---------------------------------+
|  1 | 29904034 |          1 |      10100 |        0 | 广州市番禺区番禺广场1           |
|  2 |  2839939 |          2 |          2 |        0 | 广州市番禺区南村2               |
+----+----------+------------+------------+----------+---------------------------------+
2 rows in set (0.00 sec)

mysql> commit;
Query OK, 0 rows affected (0.01 sec)

mysql> select   * from planet_user_blacklist;
+----+----------+------------+------------+----------+---------------------------------+
| id | uid      | created_at | updated_at | add_type | address                         |
+----+----------+------------+------------+----------+---------------------------------+
|  1 | 29904034 |          1 |      10100 |        0 | 广州市番禺区番禺广场1           |
|  2 |  2839939 |          2 |          2 |        0 | 广州市番禺区南村2               |
+----+----------+------------+------------+----------+---------------------------------+
2 rows in set (0.00 sec)
原文地址:https://www.cnblogs.com/wscsq789/p/15732589.html