문제
다음 테이블 생성 및 데이터 입력 후 최종 저장된 행의 개수는?
SQLCREATE TABLE ORDER_INFO( ORDER_ID INT PRIMARY KEY, CUSTOMER_ID INT REFERENCES CUSTOMER(ID), AMOUNT INT CHECK(AMOUNT > 0) ); -- CUSTOMER.ID: 100, 200, 300 INSERT INTO ORDER_INFO VALUES(1, 100, 1000); INSERT INTO ORDER_INFO VALUES(2, 400, 2000); INSERT INTO ORDER_INFO VALUES(3, 200, -500); INSERT INTO ORDER_INFO VALUES(1, 300, 3000);
① 0건 ② 1건 ③ 2건 ④ 4건
정답
2번
해설
첫 번째 INSERT는 모든 제약조건을 만족하여 성공합니다. 두 번째 INSERT는 CUSTOMER_ID 400이 참조 테이블에 없어 외래키 제약 위반으로 실패합니다. 세 번째 INSERT는 AMOUNT -500이 CHECK 제약조건(AMOUNT > 0) 위반으로 실패합니다. 네 번째 INSERT는 ORDER_ID 1이 중복되어 기본키 제약 위반으로 실패합니다. 따라서 1건만 저장됩니다.