DWS测试实践:批量构造数据

举报
你是猴子请来的救兵吗 发表于 2026/05/08 16:36:46 2026/05/08
【摘要】 批量构造测试数据

创建测试表

drop table if exists t1;
-- 创建测试表
create table t1 (id int,c1 text, c2 text, c3 text, c4 text, c5 text, c6 text, c7 text);

批量插入数据

drop procedure if exists insert_record;
-- 创建存储过程
create or replace FUNCTION insert_record(n int)
RETURNS void AS $$
DECLARE
    sql text;
    count int;
BEGIN
    count := 0;
    WHILE count < n LOOP
        count := count + 1;
        sql := 'INSERT INTO t1 (id, c1, c2, c3, c4, c5, c6, c7)';
        sql := sql || 'VALUES (' || count || ', ''20201213'', ''JM10697'', ''JM10697_20181205152406_1217'', ''18204119'', ''Accessories'', ''HUAWEI CLOUD'', ''DWS is a distributed, high-performance database system.'')';
        EXECUTE sql;
    END LOOP;
END;
$$ LANGUAGE plpgsql;
-- 执行插入
call insert_record(100);

批量建分区

drop procedure if exists create_ptable;
-- 创建存储过程
create or replace FUNCTION create_ptable(m int,n int)
RETURNS void AS $$
DECLARE
    sql text;
BEGIN
    FOR i IN 1..m LOOP
        sql := 'CREATE TABLE t' || i || '( c1 int,c2 int) PARTITION BY RANGE(c1) (';
        FOR j IN 1..n LOOP
            sql := sql || 'PARTITION p' || j || ' VALUES LESS THAN(' || j || ')';
            if j != n then
                sql := sql || ',';
            end if;
        END LOOP;
        sql := sql || ');';
        EXECUTE IMMEDIATE sql;
    END LOOP;
END;
$$ LANGUAGE plpgsql;
-- 执行插入
call create_ptable(3, 3);
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。