PostgreSQL触发器错误:控制在没有RETURN的情况下到达触发器过程
发布时间:2020-12-13 18:07:51 所属栏目:百科 来源:网络整理
导读:我试图在 Postgresql 9.5中像这样在我的表的列上创建一个触发器: CREATE OR REPLACE FUNCTION app.combo_min_stock() RETURNS TRIGGER AS$combo_sync$DECLARE combo_product_ids INTEGER[] := array(SELECT combo_product_map.combo_productid FROM app.com
我试图在
Postgresql 9.5中像这样在我的表的列上创建一个触发器:
CREATE OR REPLACE FUNCTION app.combo_min_stock() RETURNS TRIGGER AS $combo_sync$ DECLARE combo_product_ids INTEGER[] := array(SELECT combo_product_map.combo_productid FROM app.combo_product_map WHERE combo_product_map.productid=NEW.productid); DECLARE comboid INTEGER; BEGIN -- UPDATE MINIMUM STOCK FOR COMBO SKUS -- FOREACH comboid IN ARRAY combo_product_ids LOOP UPDATE app.inventory SET good_stock = combo_data.min_good_stock,bad_stock = combo_data.min_bad_stock,to_be_updated = true FROM (SELECT product.productid,MIN(inventory.good_stock) as min_good_stock,MIN(inventory.bad_stock) as min_bad_stock FROM app.product,app.inventory,app.combo_product_map WHERE product.is_combo=true AND product.productid=comboid AND product.productid=combo_product_map.combo_productid AND combo_product_map.productid=inventory.productid GROUP BY product.productid) AS combo_data WHERE combo_data.productid=inventory.productid; END LOOP; END; $combo_sync$ LANGUAGE plpgsql; ALTER FUNCTION app.combo_min_stock() OWNER TO postgres; CREATE TRIGGER combo_sync AFTER UPDATE OF good_stock ON app.inventory FOR EACH ROW EXECUTE PROCEDURE app.combo_min_stock(); 当我尝试在库存表中编辑good_stock列的值时,它会抛出这个错误:
这个查询有什么问题?
试试这个:
END LOOP; RETURN NULL; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |