我在 MySQL table 上添加新触发器时犯了什么错误?
What mistake I'm making while adding a new trigger on a MySQL table?
以下是我写的触发器:
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;
以下是相同的屏幕截图:
以下是出现的错误消息的图像:
请有人帮我添加这个触发器。
这里的信息很清楚。第一张图片第 1 行中的任何内容都不需要,因为上面已经提供了信息。
从技术上讲,您的代码试图在另一个触发器中创建一个触发器。去掉第1行就可以了
这应该是查询:
FOR EACH ROW IF :new.full_name = '' THEN :new.full_name := NULL; END IF; END;
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 接口添加它,只需将此定义放在那里:
BEGIN
IF (NEW.full_name = '') THEN
SET NEW.full_name = NULL;
END IF;
END
以下是我写的触发器:
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;
以下是相同的屏幕截图:
以下是出现的错误消息的图像:
请有人帮我添加这个触发器。
这里的信息很清楚。第一张图片第 1 行中的任何内容都不需要,因为上面已经提供了信息。
从技术上讲,您的代码试图在另一个触发器中创建一个触发器。去掉第1行就可以了
这应该是查询:
FOR EACH ROW IF :new.full_name = '' THEN :new.full_name := NULL; END IF; END;
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 接口添加它,只需将此定义放在那里:
BEGIN
IF (NEW.full_name = '') THEN
SET NEW.full_name = NULL;
END IF;
END