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