거대한 시스템으로 알기 쉽게, 병원 관리 시스템을 개발 중이며, 리셉션에서 환자를위한 새로운 티켓을 열 것입니다. 티켓은 사용자 정의 된 양식을 쓸 수 없습니다. 112011000101)MySQL 멀티 유저 거래
티켓을 저장할 때 & 번호가 하나 증가하면 마지막으로 저장된 티켓을 읽지 않습니다. (티켓에서 Tick_No를 선택하십시오. Tick_No Like '112011'% Tick_No DESC 한도에 따라 주문 1), 이것은 마지막으로 저장된 티켓 (112011000101)을 1 씩 증가시켜 반환합니다. ==> 새 티켓은 (112011000102)가됩니다.
그래서 새로운 티켓을 저축하는 견인 직원이있는 경우 중복 티켓을받을 수있는 기회가 있습니까?
나는 행 수준의 잠금을 만드는 mysql 데이터베이스와 트랜잭션을 사용하고 있지만 모든 쿼리에는 여전히 테이블을 사용할 수 있습니다.
그래서 가능한 경우 명확한 대답을하시기 바랍니다.
메모 잘못된 내용이 있으면 롤백이 실행되고 자동 재시도 저장 기능이 실행됩니다 (각 저장 순서에서 마지막 번호 확인을 수행함).
내가 알고 있지만 관계형 데이터베이스가 필요합니다, 잠금 테이블은 트랜잭션을 사용하여 이익을 죽일 것입니다. –
마지막 티켓에서'SELECT ... FOR UPDATE'를하고 새 라인을 추가하는 것은 어떻습니까? 이렇게하면 한 번에 한 명의 사용자가 온라인을 통해 새 번호를 만들 수 있습니다. – Dragos
좋아, 좀 더 간단하게 만들자. 티켓 테이블에 같은 번호의 견인 티켓을 넣으면 mysql이 그 중 하나를 롤백 할 때 트랜잭션을 사용할 때를 알고 싶다. 또한 적어도 하나는 논평 될 것인가? 네 대답은 무엇입니까? –