나는 2낙관적 잠금
UPDATE people SET name = 'Jeff' WHERE id='12345'
분명히이
스레드 1 개
UPDATE people set id='12346' WHERE name='Jeff'
스레드처럼 보이는 문으로 별도의 거래에서 데이터베이스를 업데이트하는 두 개의 스레드가있는 경우 여기 경주입니다. 스레드 1이 스레드 2 이전에 ID를 변경하면 12345는 유효하지 않은 ID가됩니다 (다른 사람이 사용하지 않는다고 가정).
낙천적 잠금을 사용할 때 낙관적 잠금 오류가 발생하는 상황 (예 : 부실 레코드 오류)이 궁금합니다. UPDATE/WHERE가 읽기 및 쓰기를 구성합니까 아니면 각각의 UPDATE가 원자 성명으로 실행 되었습니까 (또는 데이터베이스에 따라 다릅니 까?)?
업데이트는 SQL Server의 기본 문이며 대부분의 다른 주요 RDBMS는 –
중복되어 있다고 생각하십니까? http://stackoverflow.com/questions/2133393/is-update-with-nested-select-atomic-operation – durron597
좀 더 구체적인 질문 인 것 같습니다. 이것은 동시 업데이트 처리에만 관련된 것으로 보입니다. – Gian