2010-06-12 21 views
0

我第一次嘗試觸發器。任何人都可以告訴我什麼是我的創建觸發器語法錯誤?

當我嘗試使用下面創建觸發器:

CREATE TRIGGER t_foldersPrivate BEFORE DELETE ON foldersPrivate 
FOR EACH ROW BEGIN 
DELETE FROM programs WHERE folderType = '0' AND folderID = OLD.ID; 
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 3` 

(MySQL的5.1.37)

如果我擺脫FO創建觸發器語句的delete語句正常工作。所以我認爲它必須與此有關。但對於我的生活,我不知道什麼...

回答

1

你應該改變分隔符。

事情是這樣的:

DELIMITER $$ 

CREATE TRIGGER t_foldersPrivate BEFORE DELETE ON foldersPrivate 
FOR EACH ROW BEGIN 
DELETE FROM programs WHERE folderType = '0' AND folderID = OLD.ID; 
END$$ 

DELIMITER ; 

此外,您應該單獨檢查刪除查詢。它工作嗎?

+0

是的,刪除語句單獨工作正常。 我嘗試使用上面的代碼,但它有崩潰phpMyAdmin的影響。整個事情,直到我重新啓動mysql ... – Travis 2010-06-12 22:46:00

+0

我在「之前」事件中調用「OLD.ID」是錯誤的。關於它的Thnik。 嘗試這樣做: DELETE FROM programs WHERE folderType ='0'AND folderID = ID; – santiagobasulto 2010-06-13 15:42:20

相關問題