У меня есть инструктор по таблицам, и я хочу удалить записи с диапазоном зарплаты. Интуитивно понятный способ выглядит так:
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);
это не вызывает ошибки.
У меня вопрос:
- что на самом деле означает это сообщение об ошибке и почему мой код неверен?
- как переписать этот код, чтобы он работал в безопасном режиме?
Благодарность!