在mysql中保存点提交回滚

Sak*_*vel 8 mysql

我们如何在mysql中使用commit,rollback和savepoint?

Qua*_*noi 16

CREATE TABLE t_test (id INT NOT NULL PRIMARY KEY) ENGINE=InnoDB;

START TRANSACTION;

INSERT
INTO    t_test
VALUES  (1);

SELECT  *
FROM    t_test;

 id
---
  1

SAVEPOINT tran2;

INSERT
INTO    t_test
VALUES  (2);

SELECT  *
FROM    t_test;

 id
---
  1
  2

ROLLBACK TO tran2;

SELECT  *
FROM    t_test;

 id
---
  1

ROLLBACK;

SELECT  *
FROM    t_test;

 id
---
Run Code Online (Sandbox Code Playgroud)


小智 8

mysql> start transaction;
mysql> savepoint id;
Run Code Online (Sandbox Code Playgroud)

在这里您可以更改表数据,然后:

mysql> rollback to savepoint id;
Run Code Online (Sandbox Code Playgroud)

最后查看数据:

mysql> release savepoint id;
Run Code Online (Sandbox Code Playgroud)