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

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

<시간/>

START 명령과 SAVEPOINT를 사용하여 여러 트랜잭션을 허용할 수 있습니다. CREATE 명령어로 테이블을 생성해보자.

표 만들기

mysql> CREATE table transactionDemo
-> (
-> id int auto_increment,
-> primary key(id)
-> );
Query OK, 0 rows affected (0.76 sec)

그 후, 나는 START 명령의 도움으로 거래를 시작할 것입니다 -

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

그런 다음 INSERT 명령을 사용하여 다음 레코드를 삽입합니다 -

mysql> INSERT into transactionDemo values();
Query OK, 1 row affected (0.04 sec)

다음과 같이 SELECT 문을 사용하여 레코드를 표시할 수 있습니다. -

mysql> SELECT *from transactionDemo;

다음은 출력입니다.

+----+
| id |
+----+
| 1  |
+----+
1 row in set (0.00 sec)

그런 다음 SAVEPOINT를 사용하여 이 쿼리를 저장합니다. 쿼리는 다음과 같습니다 -

mysql> SAVEPOINT t2;

기록 삽입

mysql> INSERT into transactionDemo values();
Query OK, 1 row affected (0.00 sec)

SELECT 명령의 도움으로 모든 레코드 표시 -

mysql> SELECT *from transactionDemo;

다음은 출력입니다.

+----+
| id |
+----+
| 1  |
| 2  |
+----+
2 rows in set (0.00 sec)

이제 첫 번째 트랜잭션을 롤백할 수 있습니다.

mysql> ROLLBACK TO t2;
Query OK, 0 rows affected (0.03 sec)

이제 이전에 저장한 트랜잭션을 표시할 수 있습니다.

mysql> SELECT * from transactionDemo;

다음은 출력입니다.

+----+
| id |
+----+
| 1  |
+----+
1 row in set (0.00 sec)