@hrvasiliy

Как удалить запись после ее обновления?

Можно ли как-то удалить запись, после того, как она была обновлена? Речь о триггерах.
BEGIN
    IF (NEW.status <> "1") THEN
        DELETE FROM `table` WHERE `id` = NEW.id;
    END IF;
END

Получилось только обновить поле... То есть, необходимо добавить еще 1 поле в таблицу - deleted и устанавливать это поле в значение 1, далее чистить таблицу руками.
  • Вопрос задан
  • 188 просмотров
Пригласить эксперта
Ответы на вопрос 2
@dmitryKovalskiy
программист средней руки
А можно в двух словах описать бизнес-логику? Я под страхом смерти не пойму зачем удалять строку после ее обновления. Если вы хотите проверять что было проставлено isDeleted и исходя из этого - удалить строку, то это решается не триггерами, а разовыми запросами
delete from table where isDeleted = 1
где нибудь в 3 часа ночи, когда клиентура спит. Хотите удалить сразу? Удаляйте сразу.
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Таблицу нельзя изменять из триггеров этой же таблицы. Можете попробовать повесить триггер AFTER INSERT на ту таблицу, куда записываются данные и удалять строки временной таблицы оттуда, но это сработает только если есть возможность по вставляемым в постоянную таблицу данным определить удаляемую из временной таблицы строку.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы