문제
다음 실행 후 SELECT COUNT(*) FROM PRODUCTS;의 결과는?
SQLCREATE TABLE PRODUCTS( PRODUCT_ID INT PRIMARY KEY, PRICE DECIMAL(10,2) CHECK(PRICE >= 0) ); INSERT INTO PRODUCTS VALUES(101, 1500.00); INSERT INTO PRODUCTS VALUES(102, 2000.00); SAVEPOINT SP_A; INSERT INTO PRODUCTS VALUES(103, -500.00); -- CHECK 제약 위반 ROLLBACK TO SP_A; INSERT INTO PRODUCTS VALUES(104, 2500.00); COMMIT;
① 2 ② 3 ③ 4 ④ 5
정답
2번
해설
101과 102는 정상적으로 입력되고 SAVEPOINT SP_A가 설정됩니다. 103 입력은 CHECK 제약조건 위반으로 해당 문장만 실패합니다. 이후 ROLLBACK TO SP_A를 수행하면 SP_A 시점 상태로 되돌아가며, 마지막으로 104 입력이 성공합니다. 따라서 COMMIT 후 남는 행은 101, 102, 104의 총 3건입니다.