有人知道我的sintaxys中的错误是什么?
CREATE TRIGGUER safe_pass AFTER UPDATE ON usuario
FOR EACH ROW BEGIN
IF OLD.clave <> NEW.clave THEN
UPDATE usuario SET Clave = SHA1(MD5(NEW.clave)) WHERE id_usuario = NEW.id_usuario;
END IF;
END;
#1064 - 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 'TRIGGUER safe_pass AFTER UPDATE ON usuario
FOR EACH ROW BEGIN
IF OLD.clave <' at line 1
我有使用SQL Server的经验,但MySQL对我来说是一个头痛。 我拥有的MySQL版本是MySQL数据库版本5.0.51b。
谢谢和问候
对不起,我真的很抱歉我的错误,我做了改变Infinity建议我。
错误SQL:
CREATE TRIGGER safe_pass AFTER UPDATE ON usuario
FOR EACH ROW BEGIN
IF OLD.clave <> NEW.clave THEN
UPDATE usuario SET Clave = SHA1( MD5( NEW.clave ) ) WHERE id_usuario = NEW.id_usuario
END IF;
END;
结果是:
#1064 - 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 'END IF' at line 6
谢谢Siride,我试试这个:
CREATE TRIGGER safe_pass AFTER UPDATE ON usuario
FOR EACH ROW BEGIN
IF OLD.clave <> NEW.clave THEN
UPDATE usuario SET Clave = SHA1( MD5( NEW.clave ) ) WHERE id_usuario = NEW.id_usuario;
END IF;
END;
结果是:
#1064 - 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 5
我必须从控制台执行此操作,最终脚本为:
DELIMITER //
CREATE TRIGGER safe_pass BEFORE UPDATE ON usuario
FOR EACH ROW BEGIN
IF OLD.clave <> NEW.clave THEN
SET NEW.clave = SHA1(MD5(NEW.clave));
END IF;
END;//
DELIMITER ;
答案 0 :(得分:1)
最后我解决了这个问题。我必须从控制台进行操作,最终的脚本是:
DELIMITER //
CREATE TRIGGER safe_pass BEFORE UPDATE ON usuario
FOR EACH ROW BEGIN
IF OLD.clave <> NEW.clave THEN
SET NEW.clave = SHA1(MD5(NEW.clave));
END IF;
END;//
DELIMITER ;
答案 1 :(得分:0)
您似乎对MySQL非常好,您只是尝试使用TRIGGUER
找到TRIGGER
键盘: - )
答案 2 :(得分:0)
除TRIGGUER
问题外,您还在UPDATE
内IF
语句末尾的分号处停了。