SQL문 하나 하나는 그자체로 트랜젝션이 되므로 아래처럼 begin,rollback등를 쓰실필요는 없고 안되는 증상을 잘모르겠지만 mysql처럼 lock을 걸면 안될까요?
-- 전병혁 님이 쓰신 글:
>> 이곳을 통해 많은 것을 배우고 있는 사람입니다.
>>
>> mysql을 사용하다가 pgsql을 설치해서 짐 공부를 하고 있습니다.
>>
>> 게시판을 만들고 있는데 mysql에서 트랜잭션(?)을 어떻게 pgsql로 변경을
>>
>> 해야 하는지요...
>>
>> 게시판 알고리즘은 업데이트형 게시판입니다.
>>
>> idx라는 필드가 바로 업데이트되는 필드입니다.
>>
>> 물론 데이터가 많아지면 문제는 됩니다.
>>
>> mysql로 된 소스 올립니다(답변글을 작성했을때 입니다.).
>>
>> mysql_query("lock table $table write",$conn);
>> $result = mysql_query("update $table set idx=idx+1 where idx>=$re_idx",$conn);
>> mysql_query("unlock table",$conn);
>>
>> 위의 소스를 pgsql로 변경을 하면 어떻게 해야하나요?
>>
>> 제가 구현한 방법은 아래와 같습니다. 그런데 안되던데요
>>
>> pg_exec($conn,"begin");
>> $result = pg_exec($conn,"update $table set idx=idx+1 where idx>=$re_idx");
>> if($result) pg_exec($conn,"commit");
>> else pg_exec($conn,"rollback");
>>
>> by 전병혁 (chunbh)
|