Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 START TRANSACTION 외에 트랜잭션을 시작하는 명령문은 무엇일까?

MySQL에서는 START TRANSACTION 문뿐만 아니라 BEGIN 문을 사용해서도 새로운 트랜잭션을 시작할 수 있습니다. 두 문장의 기능은 완전히 동일합니다.

사용 예시

mysql> BEGIN;
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(2, 'Harshit','History',48);
Query OK, 1 row affected (0.00 sec)

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

위 예시에서는 START TRANSACTION 대신 BEGIN 문으로 트랜잭션을 시작했습니다. 이후 두 개의 INSERT 문이 실행되고, 마지막에 ROLLBACK 문이 호출되었습니다.

ROLLBACK 문은 트랜잭션 내에서 데이터베이스에 적용된 모든 변경 사항을 되돌립니다. 아래 결과 집합을 보면 테이블에 어떠한 새로운 값도 삽입되지 않았음을 확인할 수 있습니다.

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

정리

  • BEGINSTART TRANSACTION은 동일한 기능을 하는 트랜잭션 시작 문입니다.
  • ROLLBACK을 실행하면 COMMIT 전까지의 변경 사항이 모두 취소됩니다.
  • 여러 개의 DML 문(INSERT, UPDATE, DELETE 등)을 하나의 작업 단위로 묶어 처리할 때 유용합니다.