>  기사  >  데이터 베이스  >  MySQL 트랜잭션을 어떻게 구현합니까?

MySQL 트랜잭션을 어떻게 구현합니까?

WBOY
WBOY앞으로
2023-09-02 11:53:021229검색

MySQL 트랜잭션을 어떻게 구현합니까?

우리는 트랜잭션에서 명령문이 하나의 단위로 실행된다는 것을 알고 있습니다. 트랜잭션 내의 작업이 실패하면 전체 트랜잭션이 실패하므로 롤백해야 합니다. 그렇지 않으면 문에 의해 변경된 내용이 데이터베이스에 저장됩니다. 트랜잭션을 구현하기 위해 MySQL은 다음 문을 제공합니다 -

START TRANSACTION

이름에서 알 수 있듯이 이 문에서 트랜잭션이 시작됩니다. 기본적으로 이는 후속 명령문이 트랜잭션이 끝날 때까지 단일 작업 단위로 처리되어야 함을 MySQL에 알립니다.

COMMIT

COMMIT 문은 데이터베이스에 변경 사항을 커밋합니다. 즉, 트랜잭션이 성공적으로 완료되면 COMMIT 명령을 실행하여 관련된 모든 테이블에 대한 변경 사항을 적용해야 합니다.

ROLLBACK

ROLLBACK 명령은 문에 의해 변경된 내용을 취소하고 데이터베이스를 트랜잭션이 시작되었을 때의 이전 상태로 되돌립니다.

예제

다음은 MySQL 트랜잭션 구현을 보여주는 예입니다. -

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

mysql> INSERT INTO Marks Values(1, 'Aarav','Maths',50);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Marks Values(2, 'Harshit','Maths',55);
Query OK, 1 row affected (0.00 sec)

mysql> COMMIT;
Query OK, 0 rows affected (0.06 sec)

이 예에서는 START TRANSACTION 문에 의해 트랜잭션이 시작됩니다. 그런 다음 두 개의 INSERT 문을 실행하고 그 뒤에 COMMIT 문을 실행합니다. COMMIT 문은 데이터베이스에 대한 변경 사항을 저장하며, 이는 값이 테이블에 삽입되었음을 보여주는 다음 결과 집합에서 확인할 수 있습니다. -

mysql> SELECT * FROM Marks;
 +------+---------+---------+-------+
| Id   | Name    | Subject | Marks |
+------+---------+---------+-------+
| 1    | Aarav   | Maths   | 50    |
| 2    | Harshit | Maths   | 55    |
+------+---------+---------+-------+
2 rows in set (0.00 sec)

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

mysql> INSERT INTO Marks Values(1, 'Aarav','History',40);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Marks Values(1, 'Harshit','History',48);
Query OK, 1 row affected (0.00 sec)

mysql> ROLLBACK;
Query OK, 0 rows affected (0.04 sec)

이 예에서는 START TRANSACTION 문에 의해 트랜잭션이 시작됩니다. . 그런 다음 두 개의 INSERT 문을 실행하고 그 뒤에 ROLLBACK 문을 실행합니다. ROLLBACK 문은 데이터베이스에 대한 변경 사항을 실행 취소합니다. 이는 테이블에 새 값이 삽입되지 않았음을 보여주는 다음 결과 세트에서 볼 수 있습니다. -

mysql> SELECT * FROM Marks;
+------+---------+---------+-------+
| Id   | Name    | Subject | Marks |
+------+---------+---------+-------+
| 1    | Aarav   | Maths   | 50    |
| 1    | Harshit | Maths   | 55    |
+------+---------+---------+-------+
2 rows in set (0.00 sec)

위 내용은 MySQL 트랜잭션을 어떻게 구현합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제