1
我嘗試執行觸發器時遇到了一些問題。創建MySQL觸發器時出現語法錯誤
這裏是觸發我的MySQL查詢:
delimiter //
CREATE TRIGGER `aggiornaProduzione`
BEFORE UPDATE ON `strutture` FOR EACH ROW
BEGIN
DECLARE temp bigint;
IF (tipo=1/*mercato*/ AND old.livello <> new.livello)
THEN (
SELECT round(2*livello*livello + 13.8*livello)
FROM strutture WHERE tipo=1 AND city=old.city INTO temp;
WHILE (temp%6<>0) temp=temp+1;
END WHILE;
UPDATE strutture SET produzione=temp WHERE city=new.city AND tipo=1;
)
END IF;
END //
和錯誤是
#1064 - 你在你的SQL語法錯誤;檢查與您的MySQL服務器版本對應的手冊,以找到在';'附近使用的正確語法。 WHILE(temp%6 <> 0)temp = temp + 1; END WHILE; UPDATE strutture SET'at line 8
有人有一個想法,爲什麼我得到這個錯誤?
it'sstill不工作,同樣的錯誤 #1064 - 你有一個錯誤的SQL語法;檢查與您的MySQL服務器版本相對應的手冊,以找到在「temp = temp + 1」附近使用的正確語法; END WHILE; UPDATE strutture SET produzione = temp WHERE cit'at line 9 – Sanci
@Sanci:好吧,對於一個開始*不是*相同的錯誤。現在你需要看看WHILE子句:特別是它應該是WHILE temp%6 <> 0 DO SET temp = temp + 1; END WHILE;'。看我的編輯。 – eggyal
是的,我們接近解決方案。現在,我想這是最後一個錯誤,因爲它在最後一行: #1064 - 你的SQL語法錯誤;檢查對應於您的MySQL服務器版本的手冊,以便在第14行'//'附近使用正確的語法。 – Sanci