mysql - 在 mysql 中定义分隔符

标签 mysql delimiter

<分区>

我在 mySQL 中创建存储过程时遇到问题。我认为问题在于它将我的定界符视为字符串,但我可能错了。这是我的代码:

DELIMITER //
CREATE PROCEDURE getOrderInfo (IN whichorderID int)
BEGIN
    SELECT hslineitem.orderId, hsorders.orderdate, hslineitem.partNum, hslineitem.numOrdered,
            hslineitem.price
    FROM hslineitem, hsorders
    WHERE hslineitem.orderId = hsorders.orderId
    AND orderID = whichorderID ;
END 
//
DELIMITER;

errormessage

那么,是否需要一种特定的方法来识别它是定界符而不是字符串?我一直在网上查看其他示例,它们似乎并没有做任何不同的事情。提前致谢!

最佳答案

你的语句在最后一个分号之前缺少一个空格,因为在这种情况下分号实际上是 DELIMITER 命令的参数。

只有将分隔符重置回分号后才能正常使用:

DELIMITER //
CREATE PROCEDURE getOrderInfo (IN whichID int)
BEGIN
    SELECT *
    FROM orders
    WHERE id = whichID;   -- this semicolon is interpreted as text
END//
DELIMITER ;               -- space is needed here!
SELECT 1 FROM dual;       -- but not here.

关于mysql - 在 mysql 中定义分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53420927/

相关文章:

javascript - Java : extract a value from a string based on delimiters

mysql - 如何在mysql中将参数传递给触发器

python - 使用 Flask REST API 将三个参数传递给 MySQL

java - 尝试用空格分割字符串

C++ 获取分隔符的迭代器位置

MySQL - 分隔符错误

mysql - 在发生锁争用之前,特定 MySQL 行的更新频率是多少?

mysql - 对于重复记录,设置值mysql

ASP.NET 登录页面加载非常慢需要 30 秒

c++ - 在 C++ 中拆分字符串需要帮助