我正在尝试设置TRIGGER
以清除INSERT
之前的空字符串。不是火箭科学,但我在语法中找不到错误!
这是TRIGGER
本身
USE `ga_abtest_logging`;
DELIMITER $$
CREATE TRIGGER avoid_empty
BEFORE INSERT ON daily_analytics
FOR EACH ROW
BEGIN
IF profileID = ''
THEN SET profileID = NULL
END IF;
END$$
以下是工作台显示的内容:
将鼠标悬停在END IF
上,其内容为syntax error, unexpected END, expecting ';'
我的数据库设置可能有问题吗?我已经浏览了MySQL文档,我认为触发器看起来正确!有没有人看到任何明显错误的东西?
答案 0 :(得分:3)
你应该做一些改变:
NEW.
前缀例如:
DELIMITER $$
CREATE TRIGGER tr_b_ins_daily_analytics BEFORE INSERT ON daily_analytics FOR EACH ROW BEGIN
IF (NEW.profileID = '')
THEN
SET NEW.profileID = NULL;
END IF;
END $$
DELIMITER ;
答案 1 :(得分:0)
以下代码应该有效。
DELIMITER $$
CREATE TRIGGER avoid_empty
BEFORE INSERT ON daily_analytics
FOR EACH ROW
BEGIN
IF NEW.profileID = ''
THEN SET NEW.profileID = NULL;
END IF;
END;$$
DELIMITER ;