PostgreSQL中批量生成测试数据
文章目录
背景
使用postgres数据库,在创建表实现查询,经常需要构建数据。 通过sql语句批量插入测试数据。
创建扩展
使用pgcrypto
实现uuid生成。
|
|
生成随机数
使用random
生成随机数。
- 使用
>
,<
生成随机布尔值。 - 使用
*
生成随机数。 - 使用
+
生成从N开始到数+N的随机数
示例:
|
|
生成字符串
在 PostgreSQL 中,生成包含随机大小写字母(a-zA-Z)的字符串可以通过使用 chr 函数和 random 函数来实现。
-
random_char
函数生成一个随机字符。它使用 chr 函数将 ASCII 码转换为字符。random()
函数生成一个介于0和1之间的随机数,如果随机数小于0.5
,则生成一个大写字母(A-Z
),否则生成一个小写字母(a-z
)。 -
random_string
函数使用string_agg
函数将多个随机字符连接成一个指定长度的字符串。generate_series(1, length)
用于生成指定数量的随机字符。 -
generate_series
是 PostgreSQL 中一个非常有用的函数,它用于生成一系列连续的值。这个函数可以生成整数序列、时间序列等,广泛应用于数据生成、测试和分析等场景。
示例,展示如何生成包含随机大小写字母的字符串:
|
|
生成指定的字符串
要在 PostgreSQL 中生成包含字母(a-zA-Z
)、数字(0-9
)以及特定符号(如._+-
)的随机字符串,可以通过创建一个包含所有可能字符的字符串,然后从中随机选择字符来生成所需长度的字符串。
random_char
函数从给定的字符集合chars
中随机选择一个字符。它使用substr
函数从chars
中提取一个随机位置的字符。random_string
函数使用string_agg
函数将多个随机字符连接成一个指定长度的字符串。generate_series(1, length)
用于生成指定数量的随机字符。
以下是一个实现此功能的示例:
|
|
测试数据
创建数据库表:
|
|