bash shell脚本访问PostgreSQL的三种方式
bash脚本里有三种方式访问PostgreSQL数据库
但前提是要设置密码文件。当然对于有系统对应账户的数据库角色可以绕过密码登录环节,如
1
|
$ sudo -u postgres psql
|
或
1
2
|
$ sudo su - postgres
$ psql
|
但是对于没有系统账户对应的数据库角色,如要使用脚本登录则必须使用PostgreSQL密码文件
- heredoc方式
heredoc是一种很常用的方式,在bash环境下还可以使用变量替换,用法示例
123psql -U ${role} -h ${host} -d mydb << EOF
CREATE SCHEMA ${role};
EOF
也可以在循环语句中,向数据库批量插入数据,类似
123456for
...
do
psql -U ${role} -h ${host} -d mydb << EOF
INSERT INTO ${table} VALUES(${value1},${value2},...);
EOF
done
但这种方式,每次插入一条语句都重新登录一次数据库,效率肯定不咋地。
UPDATE(05/05/2014):既然可以使用变量替换,可以将所有插入语句组合到一个变量中,然后就可以在一次登录中批量插入数据了。还可以用以下方式来获取查询结果
12345result=`psql -U role -h localhost -d mydb << EOF
SELECT * FROM products;
EOF`
echo
${result}
- 使用psql命令行选项-f执行sql脚本文件
1
psql -U ${role} -h ${host} -d mydb -f ${scriptname}
- 使用psql命令行选项-c执行SQL语句或psql命令
psql的-c选项可以指定SQL语句或者psql命令,但二者不能混合,除非使用管道。如果命令参数中有多条SQL语句,则它们在一个事务里执行,除非使用BEGIN/COMMIT明确的指定事务。这与交互式使用psql终端不同,如果不明确指定事务,则每条SQL属于一个单独的事务并自动提交。只有最后一条SQL语句的结果被返回。
详见psql(1)。
可以看出,虽然有三种方式,但其实都是利用了PostgreSQL提供的外部命令psql,所以更复杂的数据库操作可以考虑使用Python
P.S.
事实证明用bash脚本插入大量数据,其效率相当低下,3510行的两个简单字段的数据竟然用了4分多种。
===
评断一个国家的品格,不仅要看它培养了什么样的人民,还要看它的人民选择对什么样的人致敬,对什么样的人追怀。 —— 约翰·肯尼迪
原链接:http://openwares.net/database/bash_access_postgresql.html
bash shell脚本访问PostgreSQL的三种方式相关推荐
- 【Shell】Shell 脚本自动输入密码的三种方式
Shell 脚本自动输入密码的三种方式 注意,如果创建.sh文件后不可以执行,请执行sudo chmod 755 文件名.sh来修改权限. 方式一 使用 echo "密码" | ( ...
- Struts2访问Servlet的三种方式
Struts2访问Servlet的三种方式 基本介绍 在Struts2中,Action并没有直接和Servlet API耦合.虽然Struts2 中的Action访问Servlet API麻烦一些,但 ...
- Linux篇:shell脚本监控主机状态的3种方式
01 前言 shell的基础语法学习告了一段路,现在开始实际操作练习,今天记录的是shell脚本的经典题目 监控主机或IP的状态,并给出提示,如以下背景: 编写脚本判断以下4个主机的状态 181.13 ...
- 【OpenCV】OpenCV访问像素点的三种方式
环境配置 VS2013+OpenCV3.0+Win7(X64) 前言 OpenCV是图像处理最常用的库之一.它提供了许多常用的图像处理算法相关的函数,极大地方便了图像处理方法的开发,而图 ...
- 安装web服务器访问站点的三种方式,Web服务器配置方法
您可能感兴趣的话题: 服务器配置 核心提示:本教程为大家介绍web服务器的配置方法. Web服务器概述 Web服务器又称为WWW服务器,它是放置一般网站的服务器.一台Web服务器上可以建立多个网站,各 ...
- COS中访问文件的三种方式
1.通过FID来访问文件(比如EF,DF) 2.通过SFI来访问文件(有些COS命令可以通过SFI来快速访问文件,而不需要事先选中文件) 3.通过文件名来访问文件(只能是DF文件) 转载于:https ...
- Shell 字符串转数组的三种方式
string="郭靖,黄蓉,神雕侠" **方式一:** array=(`echo $string | tr ',' ' '` ) **方式二:** array=(${string/ ...
- 实现内网映射的三种方式:
实现内网映射的三种方式: 1.ngrok. 1)下载ngrok 下载地址:https://ngrok.com/download 选择合适的版本下载,我下载的是win64为的是这样: 2)解压下载下 ...
- 【Shell脚本】正确认识通过sh、./和source三种方式运行shell脚本的区别并据此定义和使用shell库函数
文章目录 1. 从代码块到函数 2. 从函数到函数库 3. 定义 shell 函数库 4. 使用 shell 函数库 1. 从代码块到函数 在一个 shell 脚本中,你可以通过将具有独立功能的代码块 ...
最新文章
- POJ2492 A Bug s Life 题解
- 转 LIST INCARNATION OF DATABASE
- JAVA8 Stream方法使用详解Filter、map等用法(一)
- 部署OCS后修改web farm地址
- 【微机原理与接口技术】具体芯片(1)并行接口8255A(1):全局观
- hdu 3864 素数分解
- 场景联创 施耐德电气“绿色智能制造创赢计划”第二季收官
- SOTIF预期功能安全工作流程
- 牛客练习赛21:B. 黑妹的游戏II(博弈DP)
- ctworklist php开发,DICOM worklist工作原理
- MRP游戏软件常见问题解答以及破解方法!(新手必看)
- X-Pacific / Elasticsearch-ESClientRHL
- HCIE大师之路(三)——QOS综合实验
- 树莓派HDMI转VGA线有无源
- html5 游戏ui设计,7款手机游戏UI界面设计欣赏
- JS 的5个不良编码习惯,现在就改掉吧
- sqlnet.ora
- 光纤熔接机怎么选?从哪里买价格低服务有保障?
- Half a million dollars is or are a lot of money?
- 使用StreamTorrent观看流媒体电视
热门文章
- 课堂经验值管理小程序_微信小程序怎么管理门店?
- 嵌入式linux文件系统启动,嵌入式Linux之文件系统启动分析【原创】
- delphi image 编辑器_照片拼图编辑器app下载-照片拼图编辑器下载 v1.0.0 安卓版
- 大气校正后的ndvi_Sentinel2 L1C下载、大气校正、重采样
- mysql grant proxy on_MySQL 5.7权限的介绍
- 视频数据复用光端机故障排除方法
- 【渝粤教育】 国家开放大学2020年春季 1020国际私法 参考试题
- [渝粤教育] 中国地质大学 高级会计学 复习题
- 【渝粤题库】陕西师范大学201341 刑事诉讼法学作业
- 基于Semtech LoRa SX1268 电路设计及PCB布局