13장문제 [트랜잭션 활용하기]

MySQL & PHP 학습/연습문제 2016. 2. 6. 20:52

728x90
반응형

다음과 같이 InnoDB가 설정된 테이블 tran이 있습니다. 트랜잭션을 시작해서 UPDATE tran SET a=777;을 실행하고, 커밋을 하지 않은 상태에서 MySQL 콘솔창을 종료합니다. 그리고 MySQL 콘솔창을 다시 실행해서 UPDATE를 실행한 데이터가 어떻게 되었는지 확인해 보세요.


▶︎ 테이블 tran

 칼럼 이름 

 a 

 칼럼의 자료형 

 INT 

 칼럼의 내용 

 100 


CREATE TABLE tran (a INT);

INSERT INTO tran VALUES(100);


hint!

테이블 tran의 저장 엔진이 InnoDB로 설정되어 있는지 확인하고 실행할 것.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

다음 명령을 실행합니다.

① 테이블 tran의 내용을 확인합니다(a는 100).


SELECT * FROM tran;



② 트랜잭션을 시작합니다.



③ UPDATE를 실행해서 실행 후의 데이터를 확인합니다(a는 777로 변경됨).



④ EXIT명령으로 MySQL 콘솔창을 종료합니다.



⑤ MySQL 콘솔창을 다시 실행해서 테이블 tran의 내용을 확인합니다(a는 원래의 값 100으로 되돌아오고, 777로 변경된 것은 파기됨).



커미슬 하지 않은 상태에서 종료하면 그 내용은 파기됩니다. 즉, 트랜잭션을 커밋하지 않은 상태에서 접속을 종료하면 자동으로 롤백이 실행됩니다.

반응형