在mysql的IF语句中遇到错误?

时间:2011-10-28 02:40:20

标签: mysql stored-procedures

我想通过mysql更新超市里的人数。超市是桌子。人是指超市里的人数。 N表示超市的名称。减少意味着超市中减少的数量。如果超市中的人数小于100,则将该人设置为100.此mysql命令返回“错误1193未知系统变量'人'”。有什么建议吗?

CREATE PROCEDURE updatePerson(IN n CHAR(10), IN decrease INT)
BEGIN
 UPDATE supermarket
 SET person = person - decrease 
 WHERE name = n;

 IF person< 100 THEN 
  SET person  = 100;
 END IF;
END

1 个答案:

答案 0 :(得分:1)

CREATE PROCEDURE updatePerson(IN n CHAR(10), IN decrease INT)
BEGIN
 UPDATE supermarket
 SET person =case when (person - decrease) <100 then 100 else  (person - decrease) end 
 WHERE name = n;    
END

试试。