我正在尝试设置一个 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 文档,我认为触发器看起来不错!有没有人看到任何明显错误的地方?
最佳答案
你应该做一些改变:
- 在引用列值时使用
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 ;
关于MySQL 需要帮助设置触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37011642/