현재 MySQL 5.1 버전을 사용중에 있고 innoDB에 트랜젝션을 걸어서 사용하고 있습니다.
A, B, C, D, E, F 관리자가 있고
유저가 질문을 올리면 관리자가 답변을 하면 문자로 답변 되었다는 문자를 발송하는 시스템입니다.
현재 관리자가 답변을 등록하면 DB에 ansYN 칼럼에 Y 값으로 업데이트 합니다.
답변을 등록할 때 ansYN 칼럼이 Y 일때 '이미 처리되었습니다' 라는 메시지를 띄우고 처리가 되지 않도록 되어 있습니다.
그런데 문제는 A와 B 혹은 C,D,E 관리자가 동시에 답변했을 경우 입니다.
A와 B 가 동시에 입력할 경우 ansYN 칼럼이 모두 N 값을 가지고 있으므로 두개 모두 처리 됩니다.
트랜젝션 걸어 놓으면 괜찮을거라 생각했었는데 이런 일이 발생하니 좀 황당합니다.
어떻게 해야 동시 업데이트를 방지할 수 있을까요? |