在MySQL表上添加新触发器时我犯了什么错误?

时间:2015-09-01 11:24:38

标签: mysql sql triggers constraints

以下是我写过的触发器:

CREATE TRIGGER `test_BINS` BEFORE INSERT ON `phpfox_user` FOR EACH ROW 
IF new.`full_name` = '' THEN SET new.`full_name` = NULL; END IF; END;

以下是相同的屏幕截图: The New Trigger I written

以下是出现的错误消息图片:

Error while adding the new trigger

请有人帮助我添加此触发器。

2 个答案:

答案 0 :(得分:1)

DELIMITER $$
    CREATE TRIGGER test_BINS BEFORE INSERT ON phpfox_user
    FOR EACH ROW BEGIN
      IF (NEW.full_name = '') THEN
            SET NEW.full_name = NULL;
      END IF;
    END$$
DELIMITER ;

但如果您想使用pma-interface添加它,只需将此定义放在那里:

BEGIN
      IF (NEW.full_name = '') THEN
            SET NEW.full_name = NULL;
      END IF;
END

答案 1 :(得分:0)

这里的信息很清楚。不需要在第一张图像的第1行中存在的内容,因为上面已经提供了信息。

从技术上讲,您的代码会尝试在另一个触发器中创建触发器。删除第1行,它会没事的。

这应该是查询:

FOR EACH ROW IF :new.full_name = '' THEN :new.full_name := NULL; END IF; END;