使用多个if语句更新MYSQL表

时间:2014-07-06 22:17:58

标签: mysql database

在使用此MYSQL代码时遇到一些麻烦。我试图通过PHPMYAdmin添加一个onUpdate触发器,它接受行,然后获取修改后的条目并检查它是否大于下面的某些值。 我试图做的是让代码检查一个if语句,执行if中的代码,然后转到下一个if语句。我环顾四周,但无法弄清楚我哪里出错了。感谢帮助!

代码:

IF NEW.someVal> 10 THEN
UPDATE someTable 
SET someTable.colA = someTable.colA +1;
END IF;

IF NEW.someVal > 50 THEN
UPDATE someTable 
SET someTable.colB = someTable.colB +1;
END IF;

IF NEW.someVal > 100 THEN
UPDATE someTable 
SET someTable.colC = someTable.colC +1;
END IF;

错误: 您的SQL语法有错误;检查与您的MYSQL服务器版本相对应的手册,以便在#NEW; new.someVal>附近使用正确的语法。 10那么 更新someTable.co' ...第6行

如果我要接受任何这些if语句,并且只在我尝试创建的触发器中使用它们,则触发器工作正常。

1 个答案:

答案 0 :(得分:0)

您可以在不使用IF条件的情况下实现相同的功能,如下所示:

UPDATE someTable 
SET someTable.colA = someTable.colA +1
WHERE someTable.colA +1 > 10;

UPDATE someTable 
SET someTable.colB = someTable.colB +1
WHERE someTable.colB +1 > 50;

UPDATE someTable 
SET someTable.colC = someTable.colC +1
WHERE someTable.colC +1 > 100;