相关疑难解决方法(0)

PostgreSQL - 从bash脚本查询为数据库用户'postgres'

我在其中有3列我的PostgreSQL数据库中的表- c_uid,c_defaultsc_settings.c_uid只是存储用户的名称,并且c_defaults是一段长文本,其中包含该用户的大量数据.

我必须从bash脚本执行一个语句,该脚本根据值选择c_defaults列的c_uid值,这需要由数据库用户'postgres'完成.

在CLI上,我可以执行以下操作:

[mymachine]# su postgres
bash-4.1$psql
postgres=#\c database_name
You are now connected to database "database_name" as user "postgres".
database_name=#SELECT c_defaults  FROM user_info WHERE c_uid = 'testuser';
Run Code Online (Sandbox Code Playgroud)

但是,如何通过bash脚本实现此目的?

目的是从该列获取信息,编辑它并将其写回该列 - 所有这些都通过bash脚本完成.

sql postgresql bash

42
推荐指数
4
解决办法
15万
查看次数

将PostgreSQL查询结果存储到Shell或PostgreSQL变量中

例如,我有一个表存储值:

select * from myvalue;

  val
-------
 12345
(1 row)
Run Code Online (Sandbox Code Playgroud)

如何将其保存12345到postgresql或shell脚本中的变量中?

这是我在shell脚本中尝试的内容:

var=$(psql -h host -U user -d db <<SQLSTMT
SELECT * FROM myvalue;
SQLSTMT)
Run Code Online (Sandbox Code Playgroud)

但是echo $var给了我:

val ------- 12345 (1 row)
Run Code Online (Sandbox Code Playgroud)

我也试过了

\set var (select * from myvalue)
Run Code Online (Sandbox Code Playgroud)

在psql中,当我键入\set它时列出:

var = '(select*frommyvalue)'
Run Code Online (Sandbox Code Playgroud)

postgresql shell

7
推荐指数
2
解决办法
1万
查看次数

标签 统计

postgresql ×2

bash ×1

shell ×1

sql ×1