2016-11-28 50 views
1

我創建之前一個mysql觸發器插入的行爲就像一個自動增量場從1110Mysql的觸發分隔符5.5.5

DROP TRIGGER IF EXISTS set_nr_claim_AI; 

DELIMITER $$ 
CREATE TRIGGER set_nr_claim_AI BEFORE INSERT ON users_claim 
    FOR EACH ROW 
    BEGIN 
    DECLARE max_nr INT; 
    SET max_nr = (SELECT MAX(nr_claim) FROM users_claim); 
    IF max_nr IS NULL OR max_nr = 0 THEN 
     SET NEW.nr_claim = 1100; 
    ELSE 
     SET NEW.nr_claim = max_nr +1; 
    END IF; 
END; $$ 
DELIMITER ; 

開始在MySQL 5.5.5我有這樣的錯誤:# 1064 - 你的SQL語法錯誤;請檢查與您的MariaDB服務器版本相對應的手冊,以找到在第1行'DELIMITER'附近使用的正確語法。

但是,在MySQL 5.6版本中,所有工作都正常,我無法找到解決方案。

我也需要解決在舊版本的MySQL(我登臺環境有5.5.5)

+0

你試過用分隔符// –

+0

@MuhammadMuazzam是的,我試過//並且|也作爲分隔符。相同的結果。 – Nemeth

+0

嘗試它作爲分隔符//或保留它。 http://stackoverflow.com/questions/9017269/mysql-delimiter-syntax-error –

回答

2

我已經設法解決這個問題。我需要的只是在DELIMITER之後添加一個新行;