在mysql中定义分隔符

kknvjkwl  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(426)

这个问题在这里已经有答案了

语法错误:“delimiter”在此处输入无效(2个答案)
两年前关门了。
我在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;


那么,有没有一种特定的方法来确定它是分隔符而不是字符串?我一直在网上看其他的例子,似乎他们没有什么不同。提前谢谢!

nue99wik

nue99wik1#

语句在最后一个分号之前缺少空格,因为本例中的分号实际上是 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.

相关问题