-
저장 프로시저 동시 호출로 인해 행 개수 조절에 실패한 경우프로그래밍/의문 2017. 12. 19. 11:40반응형
0. 길드원 추가 프로시저
1. 현재 길드원 수 체크
2. 현재 길드원이 n명이 아니라면 길드원 추가
0, 길드원 수 체크 시점에서는 n명 미만이었지만 2, 추가하려는 시점에서 n명이 되어버려 오버하는 경우가 발생할 여지가 있다.(2개 이상의 세션이 있을 경우 충분히 발생 가능하다.)
insert into GuildMembers ...
group by [GuildUniqueID] having count(*) < n
if(@@ROWCOUNT = 0)
...
insert와 동시에 개수를 체크함으로 해당 현상을 완화할 수 있다.(read uncommitted)
반응형'프로그래밍 > 의문' 카테고리의 다른 글
게임에서의 아이템 강화, n번 했을 때 성공할 확률은 어떻게 될까? (0) 2018.02.26 멀티플레이어 게임 프로그래밍 - 코드 오류 수정 (0) 2018.02.20 비주얼 스튜디오, 64비트 테스트는 32비트 프로세스에서 실행할 수 없습니다. 오류 해결 (0) 2017.12.12 유니티 클라이언트와 c++ 서버 플랫 버퍼로 통신하기 성공~ (0) 2017.12.04 node.js에서 sqlite3 사용 시 errno 25 SQLITE RANGE bind or column index out of range (2) 2017.09.13