테이블에서 선택하는 값을 저장 프로 시저에 저장 한 다음 테이블 B에서 선택하는 값을 사용합니다. 행 수가 임계 값보다 작은 경우 테이블 A의 값을 업데이트하고 테이블 B를 다시 선택합니다Mysql - 저장 프로 시저 동시성 문제
Select val into v from A;
Select ID from B where total > v;
if (Found_Rows() < 3) then
Update A set val = val +1;
end if;
이 저장 프로 시저가 동시에 실행되고 행 수가 3보다 많고 업데이트가 여러 번 실행되는 것이 걱정됩니다.
먼저 이렇게 할 수 있습니까? 그렇다면 Lock이 스토어드 프로 시저에서 허용되지 않으므로이를 어떻게 막을 수 있습니까?
미리 감사드립니다.
잠시 동안 이것을 생각한 후에 업데이트를 업데이트하면 Set val = v + 1; 나는 동시 처리를 모두 값을 설정하게 할 것이다. 그러나 그것들은 같은 것으로 설정 될 것이다. – vbbartlett
'B에서 ID를 선택하시오. 어디에서> v;'('val'이 아닌)? – RandomSeed
네, 그건 v가 아니라 ... 편집 게시 – vbbartlett