0

MYSQL 構文に関するいくつかの簡単な質問です。Google でこれらの回答を見つけるのは非常に難しいようです。列の値が特定のポイントに達するとリセットされ、他の何かが行われるように、制約またはトリガーを設定することは可能ですか? または、hourLog が 0 より大きいと、ライセンス ステータスがデフォルト値の INVALID から Valid に変わります。

データベースを使用しているプログラムでこれをすべて実行できることは知っていますが、トリガーまたは制約を使用してこれを自動的に実行する MYSQL コマンドがあるかどうかに興味がありました。

これが投稿された場​​合は申し訳ありませんが、クラスの簡単な説明を探していました。

4

1 に答える 1

1

次の 2 つのトリガーを使用できます。1 つは UPDATE 用、もう 1 つは INSERT 用です。

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
;

ここでフィドルを参照してください。

于 2013-04-30T23:10:27.857 に答える