변경 보호

DML 트랜잭션 경계

UPDATE와 DELETE는 실행 전 대상 행을 좁히고, 실행 후 영향 행 수를 확인한 뒤 커밋해야 한다.

01

대상 조회

같은 WHERE 조건으로 SELECT를 먼저 실행해 변경 대상을 확인한다.

preview
02

변경 실행

UPDATE 또는 DELETE는 트랜잭션 안에서 실행한다.

mutation
03

행 수 확인

예상보다 많은 행이 바뀌면 즉시 ROLLBACK한다.

affected rows
04

후속 검증

집계나 샘플 조회로 업무 결과가 맞는지 확인한다.

후처리 점검
05

커밋

검증이 끝난 뒤에만 변경을 확정한다.

commit

실행 전후 같은 조건 사용

BEGIN;
SELECT COUNT(*) FROM orders WHERE status = 'CANCELLED';
DELETE FROM orders WHERE status = 'CANCELLED';
-- 영향 행 수 확인 뒤 COMMIT 또는 ROLLBACK