Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL触发整数变量_Mysql_Triggers - Fatal编程技术网

MySQL触发整数变量

MySQL触发整数变量,mysql,triggers,Mysql,Triggers,我想这样做: 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;

我想这样做:

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.gived_id”来更新表


即使我没有得到错误,期望的结果也不会发生。

正确,正如注释所示,您不能使用普通的相等运算符检查NULL。我理解这一点的方式是,没有任何东西等于、小于或大于,等等,NULL,因为NULL字面上是“无值”

您必须改为使用
IS NULL
IS NOT NULL
检查NULL

此链接将进一步详细介绍:

对,正如注释所示,您不能使用普通的相等运算符检查NULL。我理解这一点的方式是,没有任何东西等于、小于或大于,等等,NULL,因为NULL字面上是“无值”

您必须改为使用
IS NULL
IS NOT NULL
检查NULL

此链接将进一步详细介绍:

使用
NEW.field\u名称不为空
而不是
NEW.field\u名称!=NULL
NEW.field_name为NULL
而不是
NEW.field_name=NULL
@GiorgosBetsos yeap。Ευχαριστώ!使用
NEW.field\u名称不为空
而不是
NEW.field\u名称!=NULL
NEW.field_name为NULL
而不是
NEW.field_name=NULL
@GiorgosBetsos yeap。Ευχαριστώ!的确谢谢你的链接,真的。谢谢你的链接。