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;
두 트랜잭션이 동시에 실행될 경우 데드락이 발생할 수 있습니다.