한 3시간 삽질했다.
DB가 transaction이 안 되는 문제가 있다니.. 문제는 mysql engine의 다양성때문이다.
대표적으료MyISAM, InnoDB가 있다. 이 외 몇 가지 DB Engine이 있지만 오로지 InnoDB만 Transaction을 지원한다.
1. 현재 지원하는 engine 보는 방법
show engines;
2. table에서 사용하는 engine 확인
show table status where name='table_name';
3. engine 변경하기.
alter table table_name engine=innodb; <-- table_name에 ' ' 가 없다.
4. procedure 기본 구조
BEGIN declare exit handler for sqlexception begin rollback; end; start transaction; insert into ( )values ( ); insert into users( )VALUES( ); COMMIT; END;
5. java와의 연동 문제점.
java에서
try{
}catch(Exception e){
System.out.println(e.printStackTrace());
}
에서 exception 에서 잡히지 않는 문제가 나온다.
이럴 경우 procedure
CREATE PROCEDURE `procedure`( IN IN_VALUE INTEGER, OUT OUT_VALUE INTEGER )
OUT_VALUE등 procedure parameteter를 이용해야 한다.
'나는개발자다 > 기타' 카테고리의 다른 글
아마존 상품 검색 API 연동하는 방법. (9) | 2014.10.22 |
---|---|
vmware에서 arrow key가 작동하지 않는 경우. (0) | 2013.06.14 |
tomcat6에서 context끼리 데이터 공유하기. (0) | 2013.02.13 |
Jenkins에서 unmappable character for encoding MS949 (0) | 2012.06.01 |
Visual SVN + Eclipse 연동 (0) | 2012.05.28 |