SQLD 기출문제 예상문제 60

다음 문제를 풀어보세요.

다음 중 아래 테이블 구조와 SQL 쿼리를 참고하여 발생하는 데드락(Deadlock) 상황을 해결하기 위한 가장 적절한 방법을 고르시오.

[테이블 구조]

CREATE TABLE Products (
    ProductID INT PRIMARY KEY,
    ProductName VARCHAR(255),
    Price DECIMAL(10, 2)
);

CREATE TABLE Orders (
    OrderID INT PRIMARY KEY,
    ProductID INT,
    Quantity INT,
    FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);

[SQL 쿼리 1 (Transaction A)]

START TRANSACTION;
UPDATE Products SET Price = Price * 1.1 WHERE ProductID = 1;
UPDATE Orders SET Quantity = Quantity + 1 WHERE ProductID = 1;
COMMIT;

[SQL 쿼리 2 (Transaction B)]

START TRANSACTION;
UPDATE Orders SET Quantity = Quantity + 1 WHERE ProductID = 1;
UPDATE Products SET Price = Price * 1.1 WHERE ProductID = 1;
COMMIT;

두 트랜잭션이 동시에 실행될 경우 데드락이 발생할 수 있습니다.