이번에도 오류가 발생했습니다. 이전과는 다르게 NOT NULL 옵션의 칼럼(emp_no, emp_name)까지 모두 명시했고 입력할 값도 순서와 개수를 맞췄는데, 왜 오류가 났을까요?
오류 메시지를 보면 “Duplicate entry 1003 for key emp_test_PRIMARY”라고 나왔습니다. 이는 emp_no 칼럼에 중복 값이 입력됐다는 뜻입니다. emp_no 칼럼은 emp_test 테이블의 기본 키 칼럼인데, 기본 키로 지정된 칼럼은 반드시 값을 입력해야 하며 중복 값이 허용되지 않습니다. 그런데 INSERT 문을 보면 emp_no 칼럼에 1003이란 값을 입력했죠. 1003은 코드 10-4를 실행할 때 이미 입력된 값입니다. 즉, 같은 값을 기본 키 칼럼에 다시 넣으려고 해서 오류가 발생했습니다. 그러므로 새로운 로우를 입력할 때 emp_no 칼럼에는 이미 입력된 1001~1003을 제외한 다른 값을 넣어야 합니다.
코드 10-7
INSERT INTO emp_test
VALUES (1004, '파인먼', '2021-01-10', 3000);
SELECT *
FROM emp_test;
실행결과