1234567891011121314151617181920212223 |
- CREATE OR REPLACE FUNCTION supply_every_stock(amount INTEGER) RETURNS void AS
- $$
- DECLARE
- stoCursor CURSOR IS SELECT sto_quantity FROM Stock FOR UPDATE;
- stoQuantity Stock.sto_quantity%TYPE;
- BEGIN
- RAISE NOTICE 'Iterate on existing stocks only';
- -- Iterate on storage
- OPEN stoCursor;
- LOOP
- FETCH stoCursor INTO stoQuantity;
- EXIT WHEN stoQuantity IS NULL;
- RAISE NOTICE 'Supply %', amount;
- UPDATE Stock SET sto_quantity = sto_quantity + amount WHERE CURRENT OF stoCursor;
- END LOOP;
- CLOSE stoCursor;
- RAISE NOTICE 'End';
- END;
- $$
- LANGUAGE plpgsql;
|