我设置了更新后 MariaDB 触发器,以根据
FirstConnectionDatetime
表中 CustomerPurchases
的值执行某些操作。但是,我注意到,即使我没有在更新语句中提供 IF NEW.FirstConnectionDatetime IS NOT NULL
参数(因此它应该为 NULL),触发条件 FirstConnectionDatetime
也会错误地评估为 true。这种意外行为导致我的数据库操作出现问题。
当我在更新语句中没有提供 FirstConnectionDatetime 参数时(因此它应该为 NULL)
假设 UPDATE 查询中没有列。在这种情况下,UPDATE之前的值和之后的值是相同的。并且
OLD.column
和 NEW.column
都等于这个值。
OLD.column
包含UPDATE之前的值,NEW.column
相应包含UPDATE成功执行后的值。并且它们都不存储查询中提供的值(如果未提供则为 NULL)!