홈>
서버 측에 PHP와 MySql (InnoDB)을 사용하는 작은 POS 시스템이 있습니다. "판매"가 완료되면 업데이트 재고 수량에 대해 다음 쿼리가 실행됩니다.
"UPDATE products SET qty=qty-:qty, ustatus=1 WHERE pid=:pid";
이 문장이 "동시성 업데이트 보안"입니까? 트랜잭션이나 잠금 테이블이 필요하다는 것을 의미합니다.
이와 같은 여러 쿼리가 동시에 실행되는지 확인하고 싶습니다. 내 주식을 망치지 않습니다.
- 답변 # 1
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- JavaScript 변수를 HTML div에 '출력'하는 방법
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- python - 화면에서 찾은 요소를 찾을 수없는 경우 셀레늄
<올>
innodb를 사용하면 모든 sql 문이 트랜잭션에서 실행되므로이를 명시 적으로 지정할 필요가 없습니다.
동시 제어는 트랜잭션이 아닌 잠금을 통해 수행됩니다. 거래는 자물쇠의 수명 만 결정할 수 있습니다.
업데이트 명령문은 수정하려는 레코드에 독점 잠금을 설정합니다. 즉, 독점 잠금이 해제 될 때까지 다른 명령문이 잠긴 레코드를 수정할 수 없습니다 (때로는 읽을 수도 없음). 따라서 귀하의 진술은 동시성 관점에서 안전합니다.