作成拡張子を IF NOTは EXISTS "UUID - OSSPを"; - )(uuid_generate_v4 選択し; - CURRENT_TIMESTAMPを選択します。 - NUM = 1 temp_tb1として(* merchants.merchant_money_recordからNUMとして())CREATE_TIMEのDESCによってmerchant_id順序によってパーティション(上ROW_NUMBERを選択)SELECT * FROM。 CREATE OR REPLACE FUNCTIONのfor_loop_through_queryを( ) RETURNS VOIDをAS $$ DECLARE REC RECORDを。 merchantid UUID; NUMERICのバランスをとります。 record_remark VARCHAR ; account_entity_id UUID; ACCOUNT_ID UUID; transaction_flow_id INT ; transaction_flow_detail_id INT ; transaction_timeによってはTIMESTAMP 。 BEGIN DELETE FROM "AccountBook" .accounting_entity。 DELETE FROM "AccountBook" .account。 DELETE FROM "AccountBook" .callback_log。 DELETE FROM "AccountBook" .transaction_flow。 DELETE FROM "AccountBook" .transaction_flow_detail。 FOR REC 、IN 選択 * (選択 *、ROW_NUMBER()オーバー(パーティションによって merchant_id 順序 によって CREATE_TIMEのDESC)として NUM から merchants.merchant_money_record)として temp_tb1をNUM = 1つの LOOPの account_entity_id:= uuid_generate_v4()。 ACCOUNT_ID:= uuid_generate_v4()。 - transaction_flow_id:= uuid_generate_v4()。 merchantid:= rec.merchant_id。 バランス:= rec.current_amount。 record_remark:= rec.record_remark。 transaction_timeによって:= rec.transaction_time。 INSERT INTO "AccountBook" .accounting_entity( "ID"、 "タイプ"、SYSTEM_ID)VALUES(account_entity_id、1 、merchantid)。 INSERT INTO "AccountBook" .account( "ID"、 "accounting_entity_id"、 "タイプ"、 "バランス"、 "CREATETIME"、 "currency_type"、 "状態"、 "SYSTEM_ID")VALUES(ACCOUNT_ID、account_entity_id、1、バランス、CURRENT_TIMESTAMP、1、1 、merchantid)。 INSERT INTO"AccountBook" .transaction_flow( "タイプ"、 "business_num"、 "occurrence_time"、 "CREATETIME"、 "発言"、 "accounting_entity_id")VALUES(7、record_remark、transaction_timeによって、CURRENT_TIMESTAMP、' 初始化余额' 、account_entity_id)。 transaction_flow_id:= CURRVAL(' "AccountBook" .transaction_flow_id_seq ' ); INSERT INTO "AccountBook" .transaction_flow_detail( "transaction_flow_id"、 "ACCOUNT_ID"、 "量"、 "trading_num"、 "current_amount")VALUES (transaction_flow_id、ACCOUNT_ID、バランス、record_remark、バランス) transaction_flow_detail_id:= CURRVAL(' "AccountBook" .transaction_flow_detail_id_seq ' ); 注意を上げる' %||%||%||%||%' 、merchantid、バランス、account_entity_id、transaction_flow_id、transaction_flow_detail_id。 END LOOP; END ; $$ LANGUAGEのplpgsqlが、 選択 for_loop_through_query();
PGのSQL funcation
おすすめ
転載: www.cnblogs.com/chenyishi/p/11071956.html
おすすめ
ランキング