Изменения в MYSQL на основе значений таблицы (ограничение или триггер?)
Несколько вопросов о синтаксисе MYSQL, кажется, что найти эти ответы в Google очень сложно. Можно ли установить ограничение или триггер так, чтобы, когда значение столбца достигало определенной точки, оно сбрасывалось и что-то еще делалось. Или также, если, скажем, hourLog больше нуля, тогда статус лицензии изменяется с значения по умолчанию INVALID на Valid.
Я знаю, что все это можно сделать с помощью программы, которая использует базу данных, но мне было просто любопытно, были ли команды MYSQL, чтобы делать это автоматически с помощью триггера или ограничения.
Извините, если это было опубликовано, я просто искал быстрое разъяснение для класса.
1 ответ
Вы можете использовать эти два триггера, один для ОБНОВЛЕНИЯ, другой для ВСТАВКИ:
CREATE TRIGGER upd_yourtable BEFORE UPDATE ON yourtable
FOR EACH ROW
SET new.licenseStatus=
CASE WHEN new.hourLog>0 THEN 'Valid' ELSE 'INVALID' END
;
CREATE TRIGGER ins_yourtable BEFORE INSERT ON yourtable
FOR EACH ROW
SET new.licenseStatus=
CASE WHEN new.hourLog>0 THEN 'Valid' ELSE 'INVALID' END
;
Пожалуйста, смотрите скрипку здесь.