postgresql - 如何自动填充数据库表
问题描述
我在 Postgres 中有一些表,我想用虚拟数据填充它们。有没有可以帮助解决这个问题的工具/实用程序?
- 尊重约束
- 尊重外键
- 给定架构定义(选定的表),自动填充数据
解决方案
您可以尝试在 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
推荐阅读
- html - 如何从 textarea 元素中删除调整大小的角?
- ajax - 属性“ScriptServiceAttribute”无法应用于“MethodName”,因为该属性在此声明类型上无效
- c# - 如何从类中添加另一个输入
- php - 如何按最小值计算产品总价。Woocommerce中的数量订单?
- java - 将 ImageIcon 添加到 JLabel
- javascript - 组内的导入源必须按字母顺序排列 (TS)
- javascript - Google Treemap:想要将节点的颜色设置为红色、绿色和琥珀色
- r - 从 Map 中的列表中获取对象的名称
- specman - Specman e:“keep type .. is a”无法细化字段的类型
- c# - 为什么 EF 核心中的 [Timestamp] 列由 byte[] 列而不是 UInt64 支持