仅返回命令行 -> 尝试执行程序后

Command Line Only Returning -> After Trying to Execute Procedure

我是 MySQL 的新手,我确信这是一个常见错误,但我不知道如何向 google 描述该问题以解决它。这就像我陷入了一个无限循环,但我没有循环。我创建并执行了这个程序:

DELIMITER // 
CREATE PROCEDURE getprofit (pcode1 VARCHAR(255), pcode2 (VARCHAR(255))
 BEGIN
  SELECT p.productName 
         ,p.productCode 
         ,p.buyPrice 
         ,od.priceEach
         ,od.priceEach - p.buyPrice AS profit
  FROM products p 
  JOIN orderdetails od ON p.productCode=od.productCode 
  WHERE p.productCode LIKE pcode1 OR p.productCode LIKE pcode2
ORDER BY profit DESC; 
END // 
DELIMITER;

但是现在,我之后键入的任何代码行都不会执行。终端所做的只是填充一个附加行:

mysql> SHOW PROCEDURE STATUS WHERE DEFINER LIKE 'user%';
    ->

即使我 \c 超出该行,我执行的下一行代码也会做同样的事情。我必须退出 MySQL 并重新输入才能重置。

  1. 你能告诉我当 MySQL 只是 returns -> 时怎么称呼它吗?
  2. 我的程序有问题吗?

声明 DELIMITER 时出现问题,您没有在 DELIMITER;

之间添加 space

重新定义默认分隔符的正确方法是-

DELIMITER ;

为了将来参考,我运行在终端的同一行上执行了整个过程。我想您不能 运行 在同一行上使用两个定界符命令。一旦我 运行 他们在相反的线上,它工作正常。