0

Очень мало вопросов по синтаксису MYSQL, кажется, очень сложно найти эти ответы в Google. Можно ли установить ограничение или триггер так, чтобы, когда значение столбца достигнет определенной точки, оно будет сброшено и что-то еще сделано. Или, если say hourLog больше нуля, тогда статус лицензии изменяется от значения по умолчанию INVALID до значения Valid.MYSQL Изменяет значения на основе значений таблиц (ограничение или триггер?)

Я знаю, что все это можно сделать с помощью программы, использующей базу данных, но было любопытно, если бы были MYSQL-команды для этого автоматически с помощью триггера или ограничения.

Извините, если это было опубликовано, я просто искал быстрое разъяснение для класса.

ответ

1

Вы можете использовать эти два триггера, один для UPDATE, один для вставки:

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 
; 

Пожалуйста, смотрите скрипку here.

+0

Я ценю это, это очень помогло мне и помогло мне понять, как сделать другие триггеры, в которых я нуждался. – thekevshow