pgsql存儲過程

DECLARE  uid int8; c_record record; resu VARCHAR; v_sql text;
BEGIN
    DROP SEQUENCE IF EXISTS f_sys_tenant_ic_ext_seq;
    CREATE SEQUENCE f_sys_tenant_ic_ext_seq
        INCREMENT 1
        MINVALUE 1
        MAXVALUE 9223372036854775807
        START 1
        CACHE 1
        CYCLE;
    v_sql= $$ SELECT CASE WHEN value = '1' THEN '1' ELSE '0' END AS value FROM app_parameter_ext WHERE id = 5530283482704822302 $$ ;
    FOR c_record in (SELECT upper_tenant_id,lower_tenant_id,creator_id,create_time,modifyier_id,modify_time,need_fetch_lower_cusinfo FROM sys_tenant_interconnection) loop
        DELETE FROM sys_tenant_ic_ext WHERE target_id = c_record.upper_tenant_id AND src_id = c_record.lower_tenant_id;
                select nextval('f_sys_tenant_ic_ext_seq') INTO uid;
                EXECUTE v_sql INTO resu;
                IF(c_record.need_fetch_lower_cusinfo = '1') THEN
                        INSERT INTO sys_tenant_ic_ext
                                (id, status, creator_id, create_time, modifyier_id, modify_time, code, description, value, target_id, src_id)
                        VALUES
                                (uid, '1', c_record.creator_id, c_record.create_time, c_record.modifyier_id, c_record.modify_time,
                                        'cust_data_sync_strategy', '客戶數據同步策略', '2', c_record.upper_tenant_id, c_record.lower_tenant_id);
                ELSE
                         INSERT INTO sys_tenant_ic_ext
                                (id, status, creator_id, create_time, modifyier_id, modify_time, code, description, value, target_id, src_id)
                         VALUES
                                (uid, '1', c_record.creator_id, c_record.create_time, c_record.modifyier_id, c_record.modify_time,
                                        'cust_data_sync_strategy', '客戶數據同步策略',
                                        resu,
                                        c_record.upper_tenant_id, c_record.lower_tenant_id);
                END IF;
                SELECT nextval('f_sys_tenant_ic_ext_seq') INTO uid;
                    INSERT INTO sys_tenant_ic_ext
                            (id, status, creator_id, create_time, modifyier_id, modify_time, code, description, value, target_id, src_id)
                    VALUES
                            (uid, '1', c_record.creator_id, c_record.create_time, c_record.modifyier_id, c_record.modify_time,
                                    'goods_data_sync_downstream', '商品數據向下同步',
                                    '1',
                                    c_record.upper_tenant_id, c_record.lower_tenant_id);
                    SELECT nextval('f_sys_tenant_ic_ext_seq') INTO uid;
                    INSERT INTO sys_tenant_ic_ext
                            (id, status, creator_id, create_time, modifyier_id, modify_time, code, description, value, target_id, src_id)
                    VALUES
                            (uid, '1', c_record.creator_id, c_record.create_time, c_record.modifyier_id, c_record.modify_time,
                                    'allow_edit_zd_price', '分銷轉單可修改單價',
                            '1', c_record.upper_tenant_id, c_record.lower_tenant_id);
    END loop;
DROP SEQUENCE if EXISTS f_sys_tenant_ic_ext_seq;
RETURN;
END;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章