2011-10-28 2 views
-1

Я хочу обновить количество людей в супермаркете от mysql. Супермаркет - это стол. Человек означает количество людей в супермаркете. N означает название супермаркета. Уменьшение означает количество уменьшающегося количества в супермаркете. Если количество людей в супермаркете меньше 100, установите для человека 100. Эта команда mysql возвращает эту «ошибку 1193 неизвестной системной переменной« человек ». Любое предложение, пожалуйста?Встречайте ошибку в инструкции IF в mysql?

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' после полузависимого запроса и ожидали, что она будет волшебным образом работать. –

ответ

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 

Попробуйте это.

Смежные вопросы