首页 > 解决方案 > 如何自动填充数据库表

问题描述

我在 Postgres 中有一些表,我想用虚拟数据填充它们。有没有可以帮助解决这个问题的工具/实用程序?

  1. 尊重约束
  2. 尊重外键
  3. 给定架构定义(选定的表),自动填充数据

标签: postgresql

解决方案


您可以尝试在 postgresql 中阅读 generate_series(),此函数可用于提供带有虚拟数据的表。

insert into testscheme.testtable (id, name) 
    select generate_series, 'name1' from generate_series(1,250)

这将在 testtable 中提供 250 行。您可以在此基础上进一步构建。例如用主键约束替换 1,250。例如与

nextval('testtable_pk'::regclass)

如果您希望尊重外键,请尝试使用子选择:postgresql order by random(),以随机顺序选择行:

select MAX(names) from testscheme.names ORDER BY random()

如果你将这一切包装在一个函数中,你可以制作一个脚本来填充东西:) 希望我能提供帮助。

这是 generate_series() 的文档 https://www.postgresql.org/docs/12/functions-srf.html


推荐阅读