MySQL更新触发器-如何检测未通过的值?
假设我有以下可能的疑问:MySQL更新触发器-如何检测未通过的值?,mysql,triggers,Mysql,Triggers,假设我有以下可能的疑问: UPDATE table SET field1 = 2 WHERE id = 1; UPDATE table SET field1 = 4, field2 = 8 WHERE id = 16; 表在更新之前有一个触发器,它根据字段1计算字段2的新值,但我希望它仅在我没有特别传递值的情况下才这样做 我检测到对field1的更改,如果是旧的field1!=NEW.field1然后…,但是我如何检测field2是否被传递,而不管值实际发生了变化?如果MySQL没有通过fie
UPDATE table SET field1 = 2 WHERE id = 1;
UPDATE table SET field1 = 4, field2 = 8 WHERE id = 16;
表
在更新之前有一个触发器,它根据字段1
计算字段2
的新值,但我希望它仅在我没有特别传递值的情况下才这样做
我检测到对field1
的更改,如果是旧的field1!=NEW.field1然后…
,但是我如何检测field2
是否被传递,而不管值实际发生了变化?如果MySQL没有通过field2
的更新接收到值,它将在NEW.field2
中包含旧值
在Oracle中,如果未通过更新传递字段2
,则将获得空值
如果NEW
和OLD
值相同,则可以假定该字段不需要更新。如果所有的NEW
值与表中已有的值匹配,MySQL也将返回0行更新。如果MySQL没有通过更新field2
接收到值,它将在NEW.field2
中包含旧值
在Oracle中,如果未通过更新传递字段2
,则将获得空值
如果NEW
和OLD
值相同,则可以假定该字段不需要更新。如果所有NEW
值与表中已有的值匹配,MySQL还将返回0行更新