SQLD 기출문제 예상문제 226

다음 문제를 풀어보세요.

위 시나리오가 모두 완료된 후, PRODUCTS 테이블의 'P001' 상품에 대한 최종 STOCK_QUANTITY 값으로 가장 적절한 것을 고르시오.

[테이블 구조]

CREATE TABLE PRODUCTS (
    PRODUCT_ID VARCHAR2(10) PRIMARY KEY,
    PRODUCT_NAME VARCHAR2(100),
    STOCK_QUANTITY NUMBER
);

[초기 데이터]

PRODUCTS 테이블의 초기 데이터는 다음과 같습니다.

PRODUCT_ID | PRODUCT_NAME | STOCK_QUANTITY
-----------|--------------|---------------
P001       | Laptop       | 100

[트랜잭션 시나리오]

두 명의 사용자(User A, User B)가 동시에 PRODUCTS 테이블의 'P001' 상품 재고를 업데이트하는 시나리오입니다.

  1. User A가 트랜잭션을 시작합니다.
  2. User A가 다음 SQL을 실행합니다.
    UPDATE PRODUCTS SET STOCK_QUANTITY = STOCK_QUANTITY - 10 WHERE PRODUCT_ID = 'P001';
    
  3. User B가 트랜잭션을 시작합니다.
  4. User B가 다음 SQL을 실행합니다.
    UPDATE PRODUCTS SET STOCK_QUANTITY = STOCK_QUANTITY - 5 WHERE PRODUCT_ID = 'P001';
    
  5. User A가 COMMIT을 실행합니다.
  6. User B가 ROLLBACK을 실행합니다.