--POSTGRESQL 如何生成测试数据, 让你导不进测试数据,也能快速干活

2021-08-28 00:00:00 专区 字符串 生成 数字 英文

测试数据对于一个从事数据库行业的人士是十分必要的, 尤其要证明你的数据库的性能,以及调优后的状态. 如何生成大量的有逻辑的测试数据是一个日常且枯燥的工作.  所以我们需要根据当前的情况,组织出一套快速生成测试数据的方式,来进行数据的灌入和数据逻辑的快速生成.


首先我们先要我们要先弄出一些我们需要的零件.


1   产生随机数的方式


产生随机位数的整型数字  

select  (random()*(10))::integer;


扩展一下, 那我们这边随机产生不在 (0,100)  之间的数字

SELECT ((random()*(10))::integer * generate_series(1,10))::integer ;


2  产生随机的数字英文字符串

下面这个函数可以生成指定字符长度的数字大写小英文的混合字符串


CREATE OR REPLACE FUNCTION random_string(

  num INTEGER,

  chars TEXT default '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'

) RETURNS TEXT

LANGUAGE plpgsql

AS $$

DECLARE

  res_str TEXT := '';

BEGIN

  IF num < 1 THEN

      RAISE EXCEPTION 'Invalid length';

  END IF;

  FOR __ IN 1..num LOOP

    res_str := res_str || substr(chars, floor(random() * length(chars))::int + 1, 1);

  END LOOP;

  RETURN res_str;

END $$;



3  产生中文文字字符串

相关文章