我正在尝试创建一个触发器,但它给了我一个错误,我无法理解它的原因。在我的本地服务器中,它运行良好,而在远程服务器中则不能。
两个MySQL版本相同,MySQL 5.1.48。
触发代码如下:
CREATE TRIGGER actualizar_cliente
BEFORE UPDATE ON cliente FOR EACH ROW BEGIN
IF NEW.password = "" THEN
SET NEW.password = OLD.password;
ELSEIF NEW.password IS NULL THEN
SET NEW.password = (MD5(NEW.password));
END IF;
END
这是错误信息:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4
最佳答案
DELIMITER $$
CREATE TRIGGER actualizar_cliente
BEFORE UPDATE ON cliente FOR EACH ROW BEGIN
IF NEW.password = "" THEN
SET NEW.password = OLD.password;
ELSEIF NEW.password IS NULL THEN
SET NEW.password = (MD5(NEW.password));
END IF;
END
$$
DELIMITER ;
你可能需要IS NOT NULL
:
ELSEIF NEW.password IS NOT NULL THEN
关于php - 在“附近触发Mysql错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7834542/