gpt4 book ai didi

MySQL:创建存储过程并立即调用它

转载 作者:行者123 更新时间:2023-11-29 16:28:10 25 4
gpt4 key购买 nike

我需要创建一个存储过程,然后立即调用它,所有操作都在同一个 .sql 文件中。程序很简单,只需计算收入和支出之间的差额。问题是,当我调用程序 I get this error message

程序如下:

DELIMITER $$            
CREATE PROCEDURE crs.CurrentFinanceReport()
BEGIN
DECLARE income DECIMAL(6,2) default 0;
DECLARE outgoings DECIMAL(6,2) default 0;
SET income = (SELECT SUM(invoice.TotalPrice) FROM crs.invoice INNER JOIN crs.orders ON orders.CustomerEmail = invoice.CustomerEmail WHERE orders.OrderStatus != "Recieved");
SET outgoings =(SELECT SUM(OrderCost) FROM crs.stockOrder WHERE DateTimeRecieved = 0);
SELECT (income - outgoings);
END $$
DELIMITER ;

我这样调用它:

CALL crs.CurrentFinanceReport();

如果它有帮助的话,我发现如果过程是空的(BEGIN 和 END 之间没有任何内容),它可以调用它而不会出现错误,但是只要我添加一个简单的 SELECT * 就会导致错误。

最佳答案

SET FORIEGN_KEY_CHECKS=ON 是由 phpmyadmin 而不是您的代码生成的查询。使用 mysql 客户端,您可能不会遇到此错误(或由于 phpmyadmin 的“聪明”而导致的任何其他错误)。

关于MySQL:创建存储过程并立即调用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54120339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com