더북(TheBook)

직전에 모든 데이터를 삭제했으므로 코드 10-25에서는 INSERT 문장으로 emp_delete 테이블에 emp_test 테이블의 데이터를 복제해서 다시 넣고 있습니다. emp_delete 테이블을 보면 emp_name 칼럼에 값이 플랑크와 맥스웰인 건이 각각 2건씩 존재합니다.

실수로 플랑크와 맥스웰 사원을 두 번 입력했다고 가정해 보죠. 그럼 중복으로 입력된 건에서 한 건은 삭제해야 합니다. 가령 맥스웰 사원 데이터를 삭제한다고 해 봅시다. 그럼 DELETE 문에서 WHERE 절에 사원명이 맥스웰인 건을 조건으로 줘서 삭제하면 되겠죠. 하지만 사원명이 맥스웰인 건이 2건(1008과 1018)이므로 2건 모두 삭제됩니다. 우리는 나중에 입력된 건(사원 1018 건)만 삭제하길 원합니다. 이럴 때는 다음과 같이 DELETE 문을 작성합니다.

코드 10-26

DELETE FROM emp_delete
 WHERE emp_name = '맥스웰'
 ORDER BY emp_no DESC
 LIMIT 1;

SELECT *
  FROM emp_delete
 WHERE emp_name = '맥스웰';

실행결과

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