2013-12-08 39 views
0

我工作的這個觸發器定義後創建觸發器1064:錯誤#試圖插入

DECLARE var_count INT; 
SELECT COUNT(1) INTO var_count FROM isrl_config; 
IF var_count == 1 
    UPDATE isrl_config SET last_retention_number = NEW.id; 
END IF; 

,但我得到#1064錯誤,不知道爲什麼。有關更多信息,請參閱附件圖像,哪裏出錯? enter image description here

更新後的第2個結果

enter image description here

回答

1

BEGIN ... END

BEGIN 
    DECLARE var_count INT; 
    SELECT COUNT(1) INTO var_count FROM isrl_config; 
    IF var_count = 1 THEN 
     UPDATE isrl_config SET last_retention_number = NEW.id; 
    END IF; 
END 

圍繞着它從manual

DECLARE爲p僅在BEGIN ... END複合語句中出現,並且必須在其開始之前,在任何其他語句之前。

而且also

IF search_condition THEN statement_list 
    [ELSEIF search_condition THEN statement_list] ... 
    [ELSE statement_list] 
END IF 
+0

我做了你的建議,但現在的誤差作爲第二圖像顯示在主後改變 – Reynier

+0

if語句是有所區別的。使用一個'='(就像在普通查詢中)和'THEN'。我已經更新了我的答案。 –