Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 중첩 트랜잭션을 어떻게 사용할 수 있습니까?

<시간/>

SAVEPOINT를 사용하여 MySQL에서 중첩 트랜잭션으로 작업할 수 있습니다.

먼저 테이블을 생성합니다. 그런 다음 거래를 시작하십시오.

이제 위에서 만든 테이블에 레코드를 삽입합니다. SAVEPOINT 문을 사용하여 식별자 이름으로 명명된 트랜잭션 저장점을 설정합니다.

다음은 쿼리 형식으로 표시된 모든 단계입니다 -

테이블 생성

mysql> create table NestedTransactionDemo
   -> (
   -> Name varchar(200)
   -> );
Query OK, 0 rows affected (0.63 sec)

거래 시작 -

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

이제 테이블에 레코드를 삽입하세요.

mysql> insert into NestedTransactionDemo values('John');
Query OK, 1 row affected (0.04 sec)

위에 추가된 레코드 표시 -

mysql> select *from NestedTransactionDemo;
+------+
| Name |
+------+
| John |
+------+
1 row in set (0.00 sec)

중첩된 트랜잭션을 생성하기 위한 트랜잭션 작업부터 시작하겠습니다. −

mysql> savepoint transaction2;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into NestedTransactionDemo values('David');
Query OK, 1 row affected (0.00 sec)
mysql> select *from NestedTransactionDemo;
+-------+
| Name  |
+-------+
| John  |
| David |
+-------+
2 rows in set (0.00 sec)

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

mysql> select *from NestedTransactionDemo;
+------+
| Name |
+------+
| John |
+------+
1 row in set (0.00 sec)

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