트랜잭션은 일련의 작업을 하나의 실행 단위로 묶은것을 의미합니다. 각 트랜잭션은 특정 작업으로 시작하며 모든 작업이 성공적으로 완료되면 끝납니다. 만약 작업중 하나라도 실패할 경우, 트랜잭션은 실패합니다. 따라서, 트랜잭션은 성공 또는 실패라는 두 가지 결과만 있습니다.
불완전한 단계는 트랜잭션의 실패로 귀결됩니다. 데이터베이스 트랜잭션은 정의에 따르면, 원자적(atom)이고, 일관성(consistence)있고, 격리(isolated)되어 있고, 내구성(durable)이 있어야 합니다. 이는 ACID 속성으로 알려져 있습니다.
이하는 트랜잭션을 제어하는 명령어(TCL)들입니다. 이러한 명령어들은 테이블 생성과 같은 INSERT, UPDATE, DELETE와 같은 DML 명령과 SELECT 같은 DQL 명령에서만 유효합니다.
명시적 또는 로컬 트랜잭션의 시작점을 나타냅니다.
BEGIN TRANSACTION transaction_name ;
고립수준과 읽기전용/읽기쓰기와 같은 트랜잭션의 다양한 속성을 설정 가능 하게 합니다.
SET TRANSACTION [ READ WRITE | READ ONLY ];
단일 트랜잭션 내의 모든 명령문이 모든 것이 순서대로라면 모든 변경 사항이 데이터베이스에 함께 기록되는 것을 커밋이라고 합니다. COMMIT 명령은 마지막 COMMIT 또는 ROLLBACK 명령 이후의 모든 트랜잭션을 데이터베이스에 저장합니다.
COMMIT;
ROLLBACK할 트랜잭션 그룹 내에서 포인트를 생성합니다. SAVEPOINT는 전체 트랜잭션을 롤백하지 않고 트랜잭션을 특정 지점으로 롤백할 수 있는 트랜잭션의 지점입니다.
SAVEPOINT SAVEPOINT_NAME;
ROLLBACK TO SAVEPOINT_NAME;
이 명령은 생성한 SAVEPOINT를 제거하는 데 사용됩니다.
RELEASE SAVEPOINT SAVEPOINT_NAME
출처