我对MySQL触发器有疑问 - 说我有下表:
CREATE TABLE test (
id INT(6),
value_1 INT(6),
value_2 INT(6),
values_were_set BOOL
)
现在,每次我在此表中插入一个值时,我都要检查是否已设置value_1
和value_2
。如果是,则应将values_were_set
设置为true。
NULL
值是允许的。
我该怎么做?在真实表中,我想要检查大约十列,所以我不想使用一堆IF
语句。
也许最好在应用中做到这一点?
答案 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部分