我想做这样的事情:
DECLARE VAR_NAME INT DEFAULT 0;
IF NEW.field_name != NULL THEN
SET VAR_NAME := 8;
END IF;
IF NEW.field_name = NULL THEN
SET VAR_NAME := 1;
END IF;
UPDATE table_name SET column_name = column_name + VAR_NAME WHERE table_id = NEW.given_id;
我在插入新值时有一个触发器:
我声明了一个变量,我根据某些条件更改了它的值,然后通过将此值添加到满足条件的特定列的当前值来更新表'table_id = NEW.given_id'
即使我没有得到错误,也没有发生预期的结果。
答案 0 :(得分:0)
是的,正如注释所示,您无法使用正常的相等运算符检查NULL。我理解这一点的方式是没有任何东西等于,小于或大于等,NULL,因为NULL实际上是“没有价值”。
您必须使用IS NULL
或IS NOT NULL
来检查NULL。
此链接进一步详细说明: http://dev.mysql.com/doc/refman/5.7/en/working-with-null.html