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 26901 게시물 읽기
No. 26901
mysql5.0에서의 트랜잭션
작성자
이창형(블루소년)
작성일
2007-07-31 20:27
조회수
2,425

이상하게 아주 가끔 디비에 여러번 인서트 되서 트랜잭션을 쓰려고 하는데요.

트랜잭션쓰면 여러번 인서트 되던 문제가 사라지는 건지요?


그리고 mysql5에서 트랜잭션을 이런식으로 하면 되는지요.

mysql_query("SET AUTOCOMMIT=0");

mysql_query("START TRANSACTION");


select...

insert 

update


성공이면 mysql_query("COMMIT");

실패면 mysql_query("ROLLBACK");


mysql_query("SET AUTOCOMMIT=1"); 


이 다음에 또 다른 쿼리 처리가 많습니다.

그래서 그럴수도 있는 것 같습니다만...


트랜잭션처리방법을 위와 같이 하면 되는지 부탁드려요.


마지막으로 innodb로 세팅해줘야하는 테이블은 insert, update, delete를 실행할 테이블만 innodb로 바꿔주면 되는건지요?


고수님들 도와주세요~~

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

우선 트랜잭션이란...어떤 작업을 완료했을때 그 작업을 원상복구 할것인가? 아니면 처리할것인가 입니다.

예를 들어 여러단계의 인서트가 하나의 작업이라고 했을경우 그 여러단계중에서 어느 하나가 실패했다고 했을경우 다음단계가 성공했다하더라도 원상복구(RollBack) 해야겟죠. 모두 성공했다면 Commit 하고요.


따라서 가끔 여러버 인서트 된다 는 문제는 트랜잭션과는 상관없는 부분에서 문제가 있을겁니다. 그부분을 찾아보셔야겟죠.

innodb 를 사용할 테이블만 변경해주면 돼겟죠..꼭 업데이트쿼리를 실행할 테이블만 바꿔야 할 필요는 없습니다. (물론 트랜잭션을 사용할려면 innodb 여야...)

team b(teamb)님이 2007-08-01 11:15에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
26904Aborted_connects 수가 올라가서 정상 접속에 50% 을 넘습니다.
맨발
2007-08-01
2122
26903로직이 잘못되었는지 느려집니다. [1]
Qydl
2007-08-01
1782
26902안녕하세요.~! 오랫만에..질문 올립니다...^^; [1]
박남춘
2007-08-01
1657
26901mysql5.0에서의 트랜잭션 [1]
이창형
2007-07-31
2425
26900mysql 의 bin log 파일 삭제해도 문제없나요? [2]
홍진수
2007-07-31
2564
26899MYSQL ERROR : 1194 (ER_CRASHED_ON_USAGE) 어떤 경우 발생하는 에러인가요? [2]
김지숙
2007-07-31
7827
26898MySQL에서 캐릭터셋 변환하는 방법은 어떻게 하나요? [2]
이재훈
2007-07-30
2674
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다