2010-12-14 103 views
-1

我寫了一個簡單的觸發器,但它引發了我沒有得到的錯誤。我的繼承人觸發:無法使MySQL觸發器正常工作

CREATE TRIGGER logSlette After DELETE on ansatte 
for each row 
begin 
insert into slettede_ansatte set AnsattID=old.AnsattID,slettet=now() 
end; 

該表是CREATE TABLE語句:

CREATE TABLE slettede_Ansatte 
(
AnsattID Integer(4) NOT NULL, 
slettet TIME NOT NULL, 
CONSTRAINT Ansatte_PK Primary Key(AnsattID) 
) ENGINE=INNODB; 
+0

它給出了什麼錯誤? – David 2010-12-14 19:25:33

+0

它說「附近的SQL語法錯誤結束」;「 – 2010-12-14 19:36:10

回答

0

(修訂)

correct syntax

CREATE TRIGGER logSlette AFTER DELETE ON ansatte 
    FOR EACH ROW 
    BEGIN 
    INSERT INTO slettede_ansatte 
     SET AnsattID = OLD.AnsattID, 
      slettet=now(); 
    END; 

也許是缺少分號?

+0

沒有爲我解決 – 2010-12-14 20:23:37

+2

您需要先更改分隔符 - 分號會關閉CREATE TRIGGER語句(太快)else。 – Konerak 2010-12-14 21:02:35

+0

我正在使用MySQL Workbench,那麼如何更改分隔符?我在修改後的代碼上遇到這個錯誤:錯誤代碼:1064 您的SQL語法錯誤;請檢查與您的MySQL服務器版本相對應的手冊,以獲取在第6行附近使用的正確語法 – 2010-12-14 22:24:43