2010-12-14 105 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