Available_Tickets 테이블에서 "임의"행을 선택하려면 저장 프로 시저를 사용하고 사용자가 번호를 좋아하는 경우 선택하고 티켓을 구입하면 행이됩니다. 테이블에서 삭제되었습니다.PL/SQL 프로 시저 데이터 고정 (무작위 로트 티켓 예약)
내 절차는 다음과 같습니다 : 사용자가 선택한 행을 삭제 반환 된 수에 동의
CREATE OR REPLACE GET_RANDOM_TICKET (RESULT OUT INTEGER) IS
co,mn,mx integer;
BEGIN
SELECT COUNT(ID) , MIN(ID) ,MAX(ID) INTO CO,MN,MX FROM TICKETS;
SELECT TICKET_NUMBER INTO RESULT FROM (
SELECT TICKET_NUMBER
FROM TICKETS WHERE ID >= DBMS_RANDOM(MN,MX)
) WHERE ROWNUM = 1;
END GET_RANDOM_TICKET;
합니다. 첫 번째 select 문을 실행 한 후 max (id)가있는 행이 삭제되는 최악의 시나리오를 사용할 수 있습니까?
편집 1 ---- 두 개의 SELECT
문이 테이블의 변경 사항과 동일한 데이터를 볼 수 있습니까? 그리고 왜?
답변에 코드를 추가해 주시겠습니까? 제가 삭제를 프로 시저 외부에서 수행했음을 확인하고 싶습니다. 따라서이를 업데이트로 변경하고 '업데이트 용'프로 시저 내에서 선택하면 잠금을 유지 하시겠습니까? – alibttb
잠시만 죄송합니다. 삭제할 필요가 없습니다. 나중에 참조 할 수 있도록 판매 상태를 유지할 수 있습니다. –