테이블 강사가 있고 급여가 일정 범위에있는 레코드를 삭제하고 싶습니다. 직관적 인 방법은 다음과 같습니다.
delete from instructor where salary between 13000 and 15000;
하지만 안전 모드에서는 기본 키 (ID)를 제공하지 않으면 레코드를 삭제할 수 없습니다.
그래서 다음 SQL을 작성합니다.
delete from instructor where ID in (select ID from instructor where salary between 13000 and 15000);
그러나 오류가 있습니다.
You can't specify target table 'instructor' for update in FROM clause
내가 쓸 때 혼란스러워
select * from instructor where ID in (select ID from instructor where salary between 13000 and 15000);
오류가 발생하지 않습니다.
내 질문은 :
- 이 오류 메시지는 실제로 무엇을 의미하며 코드가 잘못된 이유는 무엇입니까?
- 이 코드를 안전 모드에서 작동하도록 다시 작성하는 방법은 무엇입니까?
감사!