create_supply_every_stock.sql 610 B

1234567891011121314151617181920212223
  1. CREATE OR REPLACE FUNCTION supply_every_stock(amount INTEGER) RETURNS void AS
  2. $$
  3. DECLARE
  4. stoCursor CURSOR IS SELECT sto_quantity FROM Stock FOR UPDATE;
  5. stoQuantity Stock.sto_quantity%TYPE;
  6. BEGIN
  7. RAISE NOTICE 'Iterate on existing stocks only';
  8. -- Iterate on storage
  9. OPEN stoCursor;
  10. LOOP
  11. FETCH stoCursor INTO stoQuantity;
  12. EXIT WHEN stoQuantity IS NULL;
  13. RAISE NOTICE 'Supply %', amount;
  14. UPDATE Stock SET sto_quantity = sto_quantity + amount WHERE CURRENT OF stoCursor;
  15. END LOOP;
  16. CLOSE stoCursor;
  17. RAISE NOTICE 'End';
  18. END;
  19. $$
  20. LANGUAGE plpgsql;