2015-08-30 20 views
0

我試圖爲每個新崗位 這裏創建觸發器是我的代碼mysql的創建觸發器拋出錯誤

CREATE TRIGGER insertprod AFTER INSERT ON post 
FOR EACH ROW 
BEGIN 
    INSERT INTO attributes SET attrtext = 'sometext', post_id = NEW.id; 
END; 

我得到這個錯誤

enter image description here

回答

2

你可能只需要一個分隔符:

DELIMITER $$ 
CREATE TRIGGER insertprod AFTER INSERT ON post 
FOR EACH ROW 
BEGIN 
    INSERT INTO attributes SET attrtext = 'sometext', post_id = NEW.id; 
END; 
$$ 
DELIMITER ; 

但是,您還使用的INSERT非標準形式。我會建議:

DELIMITER $$ 
CREATE TRIGGER insertprod AFTER INSERT ON post 
FOR EACH ROW 
BEGIN 
    INSERT INTO attributes(attrtext, post_id) 
    VALUES('sometext', NEW.id); 
END; 
$$ 
DELIMITER ; 
0

你的INSERT命令錯誤。這本來是

INSERT INTO attributes (attrtext, post_id) VALUES ('sometext', NEW.id); 
+0

還是一樣的錯誤 –

0

解析器被終止觸發的BEGIN...END塊內的語句;混淆。您需要使用DELIMITER語句來定義新的分隔符,然後可以使用該分隔符來結束CREATE TRIGGER語句。