Сустракайце памылку ў IF заяву ў MySQL?

Я хачу, каб абнавіць колькасць людзей у супермаркеце па 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
Здаецца, вы проста затрымаліся ў IF заяву пасля таго, як паў звязаных запыту і чакаецца, што гэта чароўным чынам працаваць.
дададзена аўтар Lightness Races in Orbit, крыніца

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

Паспрабуйце зрабіць гэта.

1
дададзена