본문 바로가기
DB/MySQL

4.1 Commit/Rolback, Savepoint/Truncate 작업

by 가므자 2012. 2. 22.
새로운 데이터베이스 생성
create database haksa;

생성된 데이터베이스 확인
show databases;

생성된 데이터베이스 사용하기 위해 데이터베이스 변경
use haksa;

인사 테이블 생성
create table insa(
bunho int(1) auto_increment,
name char(8) not null,
e_name char(4) not null,
town char(6) not null,
primary key(bunho)
);

insert into insa values('1','홍길동','Hong','순천');
insert into insa values('2','순자','Hong','순천');
insert into insa values('3','지미','Hong','순천');
insert into insa values('4','홍길동','Hong','순천');

테이블 내용 확인하기
desc insa;

데이터 확인
select * from insa;

Commit/Rolback 작업
commit : 변경된 데이터를 데이터베이스에 적용시킨다.
Rollack : 변경된 데이터를 취소시킨다. 직전에 Commit이 수행된 시점까지 취소시킨다.

데이터 확인
select * from insa;

주의사항으로 MySQL은 명령어를 실행하면 자동으로 Commit을 하게 되어 있다. 우선 AutoCommit를 하지 않도록 한다.
set autocommit=0;

update insa
set town ='한산도'
where bunho =4;

변경된 데이터 복구 작업 : Rollback
rollback;

TOWN이 순천인 데이터를 대구로 변경
update insa
set town ='여수'
where town='순천';

Savepoint/Truncate 작업
Savepoint는 변경된 지점의 위치를 저장한다.
Savepoint로 저장점을 저장하고 INSERT, DELETE, UPDATE 작업을 수행 후 Rollback to 저장점을 수행하면 그 위치까지 다시 복구시킬 수 있다.

INSA 테이블 변경 작업 : 번호 2의 도시을 "서울"로 변경
update insa
set town ='서울'
where bunho =4;

SavePoint "AA" 지정
savepoint aa;

번호 3행 삭제
delete from insa
where bunho=3;

데이터 확인
select * from insa;

"AA"까지 복구
rollback to aa;

truncate 작업 : 테이블의 모든 행이 삭제 처리됨
truncate table insa;

'DB > MySQL' 카테고리의 다른 글

4.3 학사관리 예제 만들기  (0) 2012.02.22
4.2 SQL 데이터형(data type), NULL  (0) 2012.02.22
2.4 MySQL 데이터베이스 관리 틀  (0) 2012.02.22
Mysql 기본 사용법  (0) 2012.02.22
Mysql 설치  (0) 2012.02.22

댓글