mysql - 在mysql中定义分隔符
问题描述
我在 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;
那么,是否有一种特定的方式我需要确定它是分隔符而不是字符串?我一直在网上查看其他示例,但它们似乎没有什么不同。提前致谢!
解决方案
您的语句在最后一个分号之前缺少一个空格,因为在这种情况下分号实际上是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.
推荐阅读
- c++ - 为什么在 sizeof() 中添加两个变量类型会返回最大的变量大小值而不是它们的总和?
- linux - 导入模块找不到容器安装的模块
- python - 将数据追加到现有 Excel 表的末尾
- java - PredictRequest 类型中的 withVersion(ModelVersion) 方法
不适用于参数(字符串) - typescript - 打字稿空链和类型缩小
- c# - 如何将带时区的 DateTime 转换为 Unix TimeStamp ?C#
- javascript - scrollTo() 执行完成后如何运行代码?
- r - 无法安装“leafpop”包
- r - 在 R 中创建一个循环并将结果保存为数据框
- iis - 几乎所有 Web 部署示例中的禁用链接参数有什么影响?