transaction을 사용해서 데이터를 삽입,수정,삭제할경우
에러가 발생했을때 트랜잭션을 ROLLBACK을 사용해서 되돌릴수있다
에러가 없이 정상적으로 진행되었다면 COMMIT을 사용해서 변경사항을 적용하고 transaction을 종료.
#start transaction
select * from board where no = 1125;
update board set count = count +1 where no = 1125;
COMMIT;
게시판에서 게시글을 눌렀을때 조회수가 1 증가한다고 생각할때
트랜잭션의 경우 둘다 동시에 실행
select와 update가 둘다 성공했을 경우 -> COMMIT(기본값)
select와 update가 둘 중 하나라도 실패할경우
-> 둘다 실행하지않고 ROLLBACK
INSERT나 DELETE, UPDATE가 처리될때 마다 transaction은 암묵적으로 auto COMMIT상태가 되어있다.
select * from board;
start transaction;
insert into
board(
content,
writedate,
uid)
(select content,writedate,uid from board);
rollback;
간단한 예제로 transaction을 시작하고 no column이 4가 저장되어 있는 테이블로 재귀복사를 이용해 더미데이터를 미친듯이 뽑아 냇다

나중에는 데이터 뽑는시간도 좀 걸렷고 데이터에는 짤렷지만 13만개 정도 찍어내니까 로딩이 오래걸렸다
ROLLBACK한 결과
