【问题标题】:MySQL triggers integer variableMySQL 触发整数变量
【发布时间】:2016-03-28 21:16:18
【问题描述】:

我想做这样的事情:

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'的特定列的当前值来更新表

即使我没有收到错误,预期的结果也没有发生。

【问题讨论】:

  • 使用NEW.field_name IS NOT NULL 代替NEW.field_name != NULLNEW.field_name IS NULL 代替NEW.field_name = NULL
  • @GiorgosBetsos 是的,成功了。 Ευχαριστώ!

标签: mysql triggers


【解决方案1】:

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

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

此链接更详细: http://dev.mysql.com/doc/refman/5.7/en/working-with-null.html

【讨论】:

  • 确实如此。也感谢您的链接。
猜你喜欢
  • 2011-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-21
  • 1970-01-01
  • 2021-03-13
  • 2017-03-14
  • 2010-09-24
相关资源
最近更新 更多