zoukankan      html  css  js  c++  java
  • PostgreSQL利用"do ..." 命令的测试数据做成/恢复脚本

    平时在测试某个模块的几个画面时,要是没有把一整套测试数据整理好,

    就容易反复出现在测试数据恢复上花很多时间的情况。

    为此,这里总结了一下,利用"do ..." 命令执行数据回滚的代码段,简单易用。

    以下SQL文,可以放在一个Main.sql中,主要是用来对比测试前后数据的变化。

    --首先查询测试前各业务表的数据,以备比较
    SELECT * FROM src_table WHERE 1 = 1 AND p_key_1 = 'hahaha' AND p_key_2 >= 1 AND p_key_2 <= 99 ;
    
    --根据原表的数据,做成存放测试数据的临时表
    --此处可根据业务需要批量做成多张表
    CREATE TABLE test_data_table AS SELECT * FROM src_table WHERE 1 = 1 AND p_key_1 = 'hahaha' AND p_key_2 >= 1 AND p_key_2 <= 99 ;
    
    --然后在实际业务程序、画面上进行测试
    
    --最后查询测试后结业务表的数据,看看结果是否符合预期
    SELECT * FROM src_table WHERE 1 = 1 AND p_key_1 = 'hahaha' AND p_key_2 >= 1 AND p_key_2 <= 99 ;

    如果,数据不符合预期,那就利用以下SQL文进行测试数据恢复或者测试数据重制

    以下可以放在RollBack.sql中,可根据业务需要批量做成多张表。

    DO $$
    DECLARE
    
    --true:测试数据恢复; false:测试数据重制
    test_to_src boolean := true;
    
    --此处可根据需要定义多批测试数据主KEY
    
    --case1
    data_p_key_1 varchar := 'hahaha';
    
    data_p_key_2_fr int := 0;
    data_p_key_2_to int := 99;
    
    --case2
    -- data_p_key_1 varchar := 'heiheihei';
    --
    -- data_p_key_2_fr int := 100;
    -- data_p_key_2_to int := 199;
    
    BEGIN
    
    IF test_to_src THEN
    --delete src_table
    DELETE FROM src_table WHERE 1 = 1 AND p_key_1 = data_p_key_1 AND p_key_2 >= data_p_key_2_fr AND p_key_2 <= data_p_key_2_to ;
    
    --insert into src_table
    INSERT INTO src_table SELECT * FROM test_data_table WHERE 1 = 1 AND p_key_1 = data_p_key_1 AND p_key_2 >= data_p_key_2_fr AND p_key_2 <= data_p_key_2_to ;
    ELSE
    --delete test_data_table
    DELETE FROM test_data_table WHERE 1 = 1 AND p_key_1 = data_p_key_1 AND p_key_2 >= data_p_key_2_fr AND p_key_2 <= data_p_key_2_to;
    
    --insert into test_data_table
    INSERT INTO test_data_table SELECT * FROM src_table WHERE 1 = 1 AND p_key_1 = data_p_key_1 AND p_key_2 >= data_p_key_2_fr AND p_key_2 <= data_p_key_2_to;
    
    END IF;
    
    END ;
    $$ LANGUAGE plpgsql;
  • 相关阅读:
    sql小练习
    登录测试点
    游戏签到
    移动端和pc端微信加入群聊
    小说
    微信语言输入
    linux tar压缩解压缩命令详解
    linux使用nginx配置web服务器
    FFmpeg 视频处理入门教程
    Git学习
  • 原文地址:https://www.cnblogs.com/soulxj/p/13812824.html
Copyright © 2011-2022 走看看