더북(TheBook)

이렇게 하면 두 DELETE 문에서 첫 번째 DELETE 문은 적용되고 두 번째 DELETE 문은 취소됩니다. 따라서 salary 칼럼 값이 NULL인 건은 삭제되지만, 맥스웰 건은 삭제되지 않아서 emp_tran1 테이블을 조회해 보면 데이터가 총 9건 있음을 확인할 수 있습니다.

지금까지 트랜잭션 처리 방법을 알아봤습니다. MySQL에서는 기본으로 자동커밋 모드가 활성화된 상태이므로 수동으로 트랜잭션 처리를 하려면 START TRANSACTION 문을 사용해 명시적으로 트랜잭션을 선언한 후 데이터를 조작하는 것이 좋습니다. 특히 UPDATE, DELETE 문을 실행할 때, 실수로 WHERE 절을 누락하거나 잘못된 조건을 명시하면 소중한 데이터가 사라지거나 변경될 수 있습니다. 이렇게 되면 다시 원상태로 되돌려야 하므로 테이블에 있는 데이터를 조작할 때는 항상 수동으로 트랜잭션 처리를 해야 합니다.

1분 퀴즈 4

수동으로 트랜잭션 처리를 하던 중, emp_tran2 테이블에서 salary 칼럼 값이 1000인 건을 삭제하려고 DELETE 문을 실행했습니다. 그런데 실수로 1000이 아닌 100인 건을 삭제했습니다. 그래서 삭제 전 상태로 데이터를 되돌렸습니다. 일련의 과정을 SQL 문으로 작성해 보세요.

정답 및 해설

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.