shell脚本,向postgresql任意表中插入大量数据

本文介绍了一个Shell脚本,用于自动根据PostgreSQL表结构插入大量数据。脚本通过获取表的主键和字段,利用generate_series函数高效生成插入SQL,支持多种数据类型。在Linux环境下,通过指定数据库连接参数、表名和数据范围,可快速为测试场景生成大规模数据。
摘要由CSDN通过智能技术生成

由于业务需要,需要测试操作大量数据的时间,但是对于表字段比较多的表,并且表很多时,经常手动插入就很累,所以写了个自动根据系统表获取表字段,并且根据参数向表中插入大量数据的shell脚本

使用时需要的必要参数:

$host ,$port :postgresql端实例连接用的端口号

$username,$password :登录数据库时使用的用户名和密码

$dghome:postgresql的bin目录,目录下有psql工具,用来连接数据库

$dbname:表所在的数据库名称

$relation:需要插入数据的表名

 

获取表的主键名称 / 所有字段名称

colslist中存储表的所有字段名,用来后续生成sql语句

prikeylist中存储表的所有主键字段名,可以用可以不用,根据需求自行调整

function get_cols()
{
        # 得到表的所有字段名称
        colslist=(`PGPASSWORD=$password $dghome/psql -t -X -A -h $host -p $port -U $username -d $dbname \
                -c "SELECT a.attname \
                        FROM pg_catalog.pg_attribute a \
                        WHERE a.attrelid = '$relation'::regclass AND a.attnum > 0 AND NOT a.attisdropped \
           
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aiky哇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值