Atomic하게 실행되어야 하는 SQL들을 묶어서 하나의 작업처럼 처리하는 방법
여러개의 sql이 동시에 성공하거나 동시에 실패해야 데이터의 정확성에 문제가 없다.
atomic?
ROLLBACK: 하나라도 실패하면 원래 상태로 돌아간다.
//예
BEGIN;
A계좌로부터 인출; //이 두 명령어들이 마치 하나의 명렁어처럼 처리된다.
B계좌로 입금; // 전부 성공하던지 다 실패하던지 둘중 하나의 결과가 나온다.
END;
autocommit=True
BEGIN/END는 바로 반영하지는 않게 하고 싶을때 사용한다.
COMMIT은 commit sql이 실행될때까지 아무 문제가 없다면, 그때 반영한다.
autocommit=False
내 세션에서는 반영된것처럼 보일 수 있지만, 다른 사용자들의 세션에는 아직 반영되지 않아 보이지 않는다.
TRUNCATE
DELETE FROM 보다 속도는 빠르지만, 트랜잭션을 지원하지 않는다.
사용을하더라도 ROLLBACK이 되지 않는다.