더북(TheBook)

이번에도 오류가 발생했습니다. 이전과는 다르게 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;

실행결과

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.