2013-05-03 143 views
3

我有一個名爲ul_logins的表和一個名爲userbaseuserchanges的表。我知道,只要我從ul_logins中刪除某個用戶,就可以自動從userbaseuserchanges中刪除同一用戶。該用戶的ID是idul_loginsuserIDuserbaseuserchanges創建刪除觸發器

我已經在mysql中寫了這觸發(phpMyAdmin的)

CREATE OR REPLACE TRIGGER deleteUser AFTER DELETE ON ul_logins 
FOR EACH ROW BEGIN 
DELETE FROM userbase WHERE userID = :old.id; 
END 

但它不工作,我得到一個錯誤,所有的時間。但我只是找不到問題所在

#1064 - 您的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法附近 使用手冊「TRIGGER deleteUser後刪除ul_logins FOR EACH ROW BEGIN DELETE FROM我們」 1號線

我已經一派,有另一種解決方案,並試圖

DELIMITER | 

CREATE OR REPLACE TRIGGER deleteUser AFTER DELETE ON ul_logins 
FOR EACH ROW BEGIN 
DELETE FROM userbase WHERE userID = :old.id; 
END;| 

DELIMITER ; 

但這並沒有工作neitehr。有什麼建議麼?

回答

4

這應該是正確的語法:

DROP TRIGGER IF EXISTS deleteUser; 

DELIMITER | 
CREATE TRIGGER deleteUser AFTER DELETE ON ul_logins 
FOR EACH ROW BEGIN 
    DELETE FROM userbase WHERE userID = old.id; 
END; 
| 

DELIMITER ; 
+0

所以,我做的唯一的事情是錯的還是更換?還是我在那裏看到錯誤?是的,這工作,謝謝。 – loomie 2013-05-03 22:16:27

+0

@loomie不客氣:)是的,我不認爲有可能使用OR REPLACE,並且ID的舊值是'old.id'而不是':old.id' – fthiella 2013-05-03 22:18:40