MySQL触发器中的条件值

时间:2015-04-02 05:28:26

标签: mysql triggers

我对MySQL触发器有疑问 - 说我有下表:

CREATE TABLE test (
    id INT(6),
    value_1 INT(6),
    value_2 INT(6),
    values_were_set BOOL
)

现在,每次我在此表中插入一个值时,我都要检查是否已设置value_1value_2。如果是,则应将values_were_set设置为true。

NULL值是允许的。

我该怎么做?在真实表中,我想要检查大约十列,所以我不想使用一堆IF语句。

也许最好在应用中做到这一点?

1 个答案:

答案 0 :(得分:0)

然后触发它是:

DELIMITER $$
CREATE TRIGGER value_check BEFORE INSERT ON test
FOR EACH ROW
BEGIN
  IF NEW.value_1 IS NOT NULL AND NEW.value_2 IS NOT NULL THEN
    SET NEW.values_were_set = 1;
  ELSE
    SET NEW.values_were_set = 0;
  END IF;
END;
$$

不幸的是,如果你想检查多个字段组合,我认为你需要在触发器中使用一个令人讨厌的if / else部分