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)