以下是代码:
CREATE PROCEDURE CountOrderByStatus(
IN orderStatus VARCHAR(25),
OUT total INT)
BEGIN
SELECT count(orderNumber)
INTO total
FROM orders
WHERE status = orderStatus;
END
当我尝试执行此操作时,我收到以下错误:
错误SQL(1064):SQL语法中有错误;检查 手册,对应右边的MySQL服务器版本 要在''附近使用的语法在第8行
我谷歌搜索了一段时间,但我无法找到有关此问题的任何信息。许多来源并未将此类代码称为无效。例如,上面的片段位于this站点。
任何想法,为什么每个人都在说,这是正常的,但MySQL产生了这样的奇怪错误?
P.S。:Windows 8.1上的MySQL Server 5.6。
答案 0 :(得分:0)
忘了添加DELIMITER。它必须看起来:
DELIMITER $$
CREATE PROCEDURE CountOrderByStatus(
IN orderStatus VARCHAR(25),
OUT total INT)
BEGIN
SELECT count(orderNumber)
INTO total
FROM orders
WHERE status = orderStatus;
END$$
DELIMITER ;
抱歉愚蠢的问题。