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