0
我试图在MYSQL 5.0.95中作出一个触发器,防止在电子邮件字段中找不到@符号时发生插入。我知道还有比触发这样其他的其他方式,但我真的想学习如何触发工作MYSQL触发器将不会被创建,由于错误
CREATE TRIGGER triggerUsersEmail
BEFORE INSERT ON Users
FOR EACH ROW
BEGIN
IF (Users.email NOT LIKE '%@%') THEN
DECLARE dummy INT;
SELECT not a valid email address INTO dummy FROM Users WHERE 1=1
END IF;
END;$$
我运行上面的$$在phpMyAdmin的分隔符,但我得到这个错误:
#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 'DECLARE dummy INT; SELECT not a valid email address INTO dummy FROM Users WHERE' at line 6
我得到“#1064 - 你在你的SQL语法错误;检查对应于你的MySQL服务器版本的手册为正确的语法使用附近'电子邮件地址INTO虚拟从用户WHERE 1 = 1 END IF; END'在第7行“ – Macmee 2013-04-06 14:52:08
其实我没有得到你想要的这个选择查询。它似乎很错误:)你能分享你的用户表,并告诉我们你想要做什么 – 2013-04-06 14:59:11
MYSQL 5.0没有信号,所以我试图通过抛出我自己的错误来阻止INSERT发生。即使我将“SELECT not a valid email address INTO dummy FROM Users WHERE 1 = 1”更改为“SET NEW.email ='[email protected]'”这样的有效内容,它仍然会引发同样的错误。我的用户表是http://pastebin.com/Nvtx9Vhy – Macmee 2013-04-06 15:06:53