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