嗨我遇到缺少字段数据时触发器未运行的问题。
当我创建新记录时,我希望将填充的字段连接起来,并将空字段保持为空白。
例如,在我的表单中,并不总是需要有一个电子邮件地址,但是如果我没有为电子邮件地址输入内容,则触发器不会运行,并且我需要的数据字段不会被连接。我目前的工作是将一个默认值添加到电子邮件字段,但我宁愿它是空白的,即使某些字段为空,触发器也会运行。在这种情况下,它只是电子邮件地址,不时是空白。
BEGIN
SET NEW.data = CONCAT(NEW.green, ',', NEW.language, ',', NEW.map, ',', NEW.welcome, ',', NEW.label, ',', NEW.path, ',', NEW.email);
END
感谢任何建议。
答案 0 :(得分:0)
我仍然不确定我100%理解你的问题所以这是根据我对你的问题的理解我的回答:
BEGIN
SET NEW.data = IF( NEW.email IS NULL OR NEW.email = '',
CONCAT(NEW.green, ',', NEW.language, ',', NEW.map, ',', NEW.welcome, ',', NEW.label, ',', NEW.path),
CONCAT(NEW.green, ',', NEW.language, ',', NEW.map, ',', NEW.welcome, ',', NEW.label, ',', NEW.path, ',', NEW.email)
);
END
请注意,如果email
在空闲时间超过50%时为空。如果相反,则应将条件更改为NEW.email IS NOT NULL AND NEW.email != ''
并反转CONCAT
以获得最佳执行。