Сводка
Мне нужно очистить историю таблицы от строк старше 14 дней.
Не будучи экспертом по MySQL, мои поиски привели меня к следующему:
delete
from SYS_VERROUS_POLICE
where idModificationPolice not in (
select distinct idModificationPolice
from SYS_VERROUS_POLICE
where date(dateHeureModification)
between curdate() and curdate() - interval 14 day
);
Сгенерировано исключение
Но затем я застрял с этим сообщением об ошибке:
Код ошибки: 1093. Вы не можете указать целевую таблицу "SYS_VERROUS_POLICE" для обновления в предложении FROM.
Что за...
Контекст
MySQL, похоже, работает в безопасном режиме, поэтому я просто не смогу выполнить DELETE при совпадении дат.
В безопасном режиме, если я попытаюсь удалить, используя только поле даты, это не соответствует требованиям.
delete
from SYS_VERROUS_POLICE
where date(dateHeureModification) < curdate() - interval 14 day
Error Code: 1175. You are using safe update mode and you tried to update a table without a
WHERE that uses a KEY column
To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.
0,00071 sec
Я что-то упускаю?
SELECT * FROM SYS_VERROUS_POLICE WHERE DATE(dateHeureModification) < CURDATE() - INTERVAL 14 DAY
- person Raymond Nijland   schedule 13.11.2017