database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 29772 게시물 읽기
No. 29772
C API를 통한 Transaction 비정상 경험하신분..
작성자
박재성
작성일
2010-08-26 17:54
조회수
9,162

안녕하세요.

mysql client로 START TRANSACTION; 이후 COMMIT이나 ROLLBACK은 잘 되는데(다른 커넥션은 commit 이나 rollback 이후 데이터가 확인됨),

C언어 소스 내에서 위의 쿼리문을 전달하면 COMMIT이나 ROLLBACK을 하기도 전에 commit이 되어 버립니다.

실패할 경우 rollback 시켰는데 rollback도 동작을 않습니다.

비슷한 경험이나 해결한 경험이 있으신분은 조언 부탁 드립니다.

그럼 즐거운 하루 되세요.

이 글에 대한 댓글이 총 3건 있습니다.

 autocommit 과 관련된 문제인 것으로 예상되는데, 해당 설정을 확인해보세요.

박현우(lqez)님이 2010-08-26 18:55에 작성한 댓글입니다.
이 댓글은 2010-08-26 18:55에 마지막으로 수정되었습니다.

답변 감사합니다.

start transaction 이전에 autocommit off도 해보고,

off 후 begin으로 바꿔도 봤는데 모두 동일합니다. ㅠㅠ

박재성님이 2010-08-26 21:16에 작성한 댓글입니다. Edit

해결 하였습니다.

테스트 결과 mysql_query("START TRANSACTION") 으로는 영향을 주지 않습니다.

mysql_autocommit(&mysql, false); // start transaction
mysql_commit() or mysql_rollback()
mysql_autocommit(&mysql, true); // end transaction
 

이렇게 C API를 이용해서 transaction 처리해야 합니다.

테스트 환경은 MySQL 5.0, Engine은 InnoDB

 

박재성님이 2010-08-27 14:32에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
29775테이블 값 참조 질문 드립니다. [1]
정현철
2010-08-30
7471
29774mysql root 계정이 안생깁니다. [1]
박재헌
2010-08-30
6922
29773mydqldump 시 LOCK TABLES 문제로 dump되지않는이유?? [3]
조근호
2010-08-29
12567
29772C API를 통한 Transaction 비정상 경험하신분.. [3]
박재성
2010-08-26
9162
29771. [1]
변재언
2010-08-26
7877
29770mysql error 1064
BlueSpy
2010-08-25
7747
29769특정 필드에서 특정 문자를 제거 하는 방법이 있을까요?? [2]
mysql 초보
2010-08-25
7559
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.027초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다