2011-10-28 2 views
-1

Je veux mettre à jour le nombre de personnes en supermarché par mysql. Le supermarché est la table. Personne signifie la quantité de personnes dans le supermarché. N signifie le nom du supermarché. Diminuer signifie le nombre de quantité décroissante dans le supermarché. Si la quantité de personnes dans le supermarché est inférieure à 100, définissez la personne sur 100. Cette commande mysql renvoie cette "erreur 1193 variable système inconnue 'personne'". Toute suggestion s'il vous plaît?Rencontre une erreur dans l'instruction IF dans 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

Vous semblez avoir bloqué une instruction 'IF' après une requête semi-connexe et vous vous attendiez à ce qu'elle fonctionne par magie. –

Répondre

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 

essayer.

Questions connexes