【发布时间】:2020-08-22 17:23:12
【问题描述】:
你能帮忙吗?
此代码应将包装中的产品数量更新为等于形成包装的产品的最低库存量。我的库存每 5 分钟根据 Oracle ERP 的数据更新一次,但 ERP 不知道中止包 - 它们仅存在于 Prestashop 中,并且必须按周期(作业)独立更新。我尝试按程序来做。
CREATE OR REPLACE PROCEDURE B2C_P_QUANTYTY_UPDATE
BEGIN
FOR i IN
(SELECT ps_pack.id_product_pack, min(ps_stock_available.quantity) min_quantity
FROM ps_pack, ps_stock_available
WHERE ps_pack.id_product_item = ps_stock_available.id_product
GROUP BY ps_pack.id_product_pack)
LOOP
UPDATE ps_stock_available
SET ps_stock_available.quantity = i.min_quantity
WHERE ps_stock_available.id_product = i.id_product_pack ;
END LOOP ;
END;
分析中发现2个错误。
Unrecognized data type. (near "ps_pack" at position 81)
Unrecognized data type. (near "(" at position 109)
MySQL 返回:
#1064 - Something is wrong in your syntax near 'BEGIN
FOR i IN
(SELECT ps_pack.id_product_pack, min(ps_stock_available.qua' in line 2
我不明白为什么,选择查询工作正常。但是包裹在过程中会停止识别数据类型。
【问题讨论】:
标签: mysql types prestashop procedure