2011-10-28 2 views
-1

슈퍼마켓에있는 사람들의 수를 mysql로 ​​업데이트하고 싶습니다. 슈퍼마켓이 테이블입니다. 사람은 슈퍼마켓에있는 사람들의 양을 의미합니다. N은 슈퍼마켓의 이름을 의미합니다. 감소는 슈퍼마켓에서 감소하는 수량을 의미합니다. 슈퍼마켓에있는 사람들의 수가 100 미만인 경우, 사람을 100으로 설정하십시오.이 mysql 명령은 "오류 1193 알 수없는 시스템 변수 'person'"을 리턴합니다. 어떤 제안이라도 제발?mysql의 IF 문에서 오류를 확인 하시겠습니까?

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 

은보십시오.