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