|
Lock을 걸 때 Shared mode와 exclusive mode가 있는 것으로 아는데요..
이런 것이 있다고 하더라도.. 같은 Row에 대하여 Select하고.. upload하는 시간의 텀이
길면 동일 데이터에 대한 Action일 지 확신하기 힘듭니다. 그래서, 저는
화면에 표시할 때 select하고.. update나delte할 때 다시한 번 select해 봅니다. (저의 경우입니다.)
Lock을 거는 syntax는
// shared mode
SELECT * FROM parent WHERE NAME = 'Jones' LOCK IN SHARE MODE;
//exclusive mode (?) 이것은 commit되기 전의 데이터 인 지.. 보다 말아서.. 암튼 Syntax는 이렇습니다.
SELECT counter_field FROM child_codes FOR UPDATE;
UPDATE child_codes SET counter_field = counter_field + 1;
하안인 님이 쓰신 글 :
: 한레코드만 락을 걸수 있는지 해서요.
: 그러면 락이 걸려있는 동안에 그 레코드만 접근안되고
: 다른 레코드를 가져갈 수 있도록 하기 위해서입니다.
:
:
: Lyn 님이 쓰신 글 :
: : 쿼리 하는 동안 테이블에 락 걸면 되죠 ...
: :
: :
: : 하안인 님이 쓰신 글 :
: : : mysql 에서 데이타를 여러 pc에서 동시에 데이타를 하나씩 가져오려고 합니다.
: : :
: : : 즉,
: : : select * from test where st = 'R' limit 1;
: : : st = test->fieldByname("seq")->AsInteger;
: : : sql = update test set st = 'I' where seq = st;
: : :
: : : 그런데 만약 100개의 피씨에서
: : : 위와 같은 퀴리를 실행하면 같은 레코드를
: : : 가져올 확률이 있지 않나해서요.
: : :
: : : 동접이 생겼을때 상관이 없을까요?
|