我创建了一个存储过程并尝试在事件中调用它,因为我想每1分钟执行一次存储过程。 但是我找不到任何结果。
这是我写的存储过程insert_update_supplier
DELIMITER $$
USE `eegpap`$$
DROP PROCEDURE IF EXISTS `insert_update_supplier`$$
CREATE DEFINER=`eegpap`@`%` PROCEDURE `insert_update_supplier`()
BEGIN
SELECT COUNT(*) AS col_no1, Invoice_Date AS invoicedate, No_of_Cases AS d_ncases, No_of_Bottles AS d_nbottles, Product_Code AS d_pcode FROM depot_sales__c WHERE Supplier_Code IN (SELECT Supplier FROM advance_payment_request__c);
SELECT From_Date AS s_fromdate FROM supplier_payment__c;
IF col_no1>0 THEN
IF(CURDATE()-invoicedate>=45) THEN
IF(s_fromdate>invoicedate) THEN
UPDATE supplier_payment__c SET From_Date=invoicedate;
END IF;
IF(d_nbottles!=NULL AND d_nbottles>0) THEN
UPDATE supplier_payment__c SET No_of_Loose_Cases=(No_of_Loose_Cases+1) AND No_of_Loose_Bottles=(No_of_Loose_Bottles+d_nbottles);
END IF;
UPDATE supplier_payment__c SET No_of_Loose_Cases=(No_of_Loose_Cases+1) AND No_of_Cases=(No_of_Cases+d_ncases) AND Cost_Value=(d_ncases*(SELECT Landed_Cost FROM product2 WHERE Supplier_Code=d_pcode));
END IF;
END IF;
END$$
DELIMITER ;
这是事件supplier_event
CREATE EVENT supplier_event
ON SCHEDULE EVERY 5 SECOND
DO
CALL insert_update_supplier();
我不明白我犯错误的地方或问题所在。或者如果除了存储过程之外还有其他替代方法,请建议。
请帮帮我一下。提前致谢
答案 0 :(得分:0)
本声明:
SELECT COUNT(*) AS col_no1, Invoice_Date AS invoicedate, No_of_Cases AS d_ncases, No_of_Bottles AS d_nbottles, Product_Code AS d_pcode
FROM depot_sales__c
WHERE Supplier_Code IN (SELECT Supplier FROM advance_payment_request__c);
没有做你期望的事。我想你想要的东西:
SELECT col_no1 := COUNT(*),
invoicedate := Invoice_Date,
d_ncases := No_of_Case,
d_nbottles := No_of_Bottles,
d_pcode := Product_Code
FROM depot_sales__c
WHERE Supplier_Code IN (SELECT Supplier FROM advance_payment_request__c);
您还应该在代码块中声明您正在使用的变量。