안녕하세요
sql 문의 드립니다.
저희가 wms시스템(a), 물류게이트(b) 장비시스템 이 있습니다.
우선 업무를 설명하자면 기존에는 a시스템에서
z주문 x상품 1개
y주문 x상품 1개
q주문 x상품 1개
w주문 x상품 1개
이렇게 같은 상품으로 주문된 4개의 주문건이 있다고 가정하겠습니다.
그럼 주문처리하는 여러명 유저가 a시스템에 로그인해서 상품 바코드를 읽으면 해당하는 상품이 주문처리된 주문을 조회해서 1주문씩 처리를 하는 시스템입니다.
여기서 기 주문건을 가져오는 sql이 아래 처럼
select
from table a, table b, table c
where 1=1
and date = '20230921'
and a.상품코드 = 'x'
order by a.col_cd, a.date, a.송장번호
for update a.out_date wait 20
그럼 제일 첫번째꺼를 어플리케이션 단에서 처리를하게 끔되어 있습니다.
문제는 지금까지는 sql에 for update a.out_date wait 20 가 되어 있어서 중복으로 처리되는 상황이 발생 안하였습니다.
그런데 사람이 하는 작업을 장비(게이트장비를 도입해서) 사람+장비에서 동시 작업을 하는 상황이 발생하게 되었는데 제가 걱정하는건 중복 주문이 처리가 될까봐 걱정입니다.
그래서 장비(게이트)에서도 같은sql을 사용하면 문제가 없을까요?
select
from table a, table b, table c
where 1=1
and date = '20230921'
and a.상품코드 = 'x'
order by a.col_cd, a.date, a.송장번호
for update a.out_date wait 20
업무하는방식이 보통 사람이 wms(a)시스템에 여러개의 pc에서 5-6명이 작업진행
장비는 계속 작업이 진행을합니다.