展X寶項目使用的是pq數據庫,批量發送紅包需求,需要采用存儲過程來初始化紅包記錄數據。
創建存儲過程語句有固定的架子,如下
CREATE OR REPLACE FUNCTION public.loop_insert() RETURNS void LANGUAGE plpgsql AS $function$ DECLARE i integer; BEGIN for i in 1 .. 2000000 loop insert into red_packet_pay (id, agent_no, amount, payment_acc) values (''||i, '112010302'||i, i, '20180224'||i); end loop; END; $function$
在寫自己的存儲過程時,只需關注3個地方就好:
1.declare 聲明要在下面語句中用到的變量
2.begin end; 中間寫內容
如果存儲過程只是一次性的調用,那么就沒有必要創建存儲過程了,寫sql語句塊即可。
也有固定的架子,如下
DO LANGUAGE plpgsql $$ DECLARE i integer; BEGIN for i in 1 .. 5 loop insert into public.a values (i, '112010302'); end loop; END; $$;
同樣也只需關注declare變量和begin end中間的部分。
