DELIMITER $
DROP PROCEDURE IF EXISTS discount$
CREATE PROCEDURE discount(IN price INT, OUT price_after_discount INT)
BEGIN
IF (price<100) THEN
SET price_after_discount=price;
ELSEIF(price>100 AND price<200) THEN
SET price_after_discount=(price*0.10)+price;
ELSE
SET price_after_discount=(price*0.20)+price;
END IF;
END$
DELIMITER;
Run Code Online (Sandbox Code Playgroud)
Mysql告诉我第9行有错误:
1064 - 您的SQL语法出错; 检查与MySQL服务器版本对应的手册,以便在第1行的"DELIMITER"附近使用正确的语法
为什么我有错误?我做错了什么?
这是因为你失踪了END IF.请参阅此处的手册
CREATE PROCEDURE discount(IN price INT, OUT price_after_discount INT)
BEGIN
IF (price<100) THEN
SET price_after_discount=price;
ELSEIF(price>100 AND price<200) THEN
SET price_after_discount=(price*0.10)+price;//Error here
ELSE
SET price_after_discount=(price*0.20)+price;
END IF;
END$$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)
通常near '' at line no这种错误是在语句中缺少某些内容的情况下发生的IF ELSE .. or BEGIN .. END,这些语句不会告诉确切的行号和代码.
编辑:你之间缺少空间 DELIMITER ;
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |