相关疑难解决方法(0)

Postgresql:从文件中插入列的值

例如,有一个名为'testtable'的表,其中包含以下列:testint(整数)和testtext(varchar(30)).

我想要做的就是这样的事情:

INSERT INTO testtable VALUES(15, CONTENT_OF_FILE('file'));
Run Code Online (Sandbox Code Playgroud)

在阅读postgresql文档时,我所能找到的只是COPY TO/FROM命令,但是那个应用于表而不是单列.

那么,我该怎么办?

postgresql file-io

14
推荐指数
2
解决办法
9018
查看次数

如何从shell脚本中的postgresql中取代pg_backend_pid并将其传递给另一个进程?

我需要bin/psql在命令行(或脚本)上运行并打印pg_backend_pid出来,以便pg_backend_pid可以将其作为命令行参数传递给另一个进程(由root运行).对我来说问题是其他进程需要在获得pid后运行.然后psql(使用相同的pid会话)在另一个进程启动后运行查询.

诀窍是Psql需要等到其他进程获得pg_backend_pid并且它必须保持相同的会话.

可以通过shell脚本或perl来完成吗?

postgresql shell perl

3
推荐指数
1
解决办法
2221
查看次数

根据txt文件更新表行

我一直在搜索,但到目前为止,我仅发现了如何基于csv文件将日期插入表中。

我有以下情况:

目录名称= ticketID

在此目录中,我有几个文件,例如:

  • Description.txt
  • Summary.txt -包含票头,并且已成功导入。
  • Progress_#.txt-这是每张票过期的时候。我得到一个新文件。
  • Solution.txt

导入Issue.txt其实很容易,因为它实际上是CSV。

现在我的问题是描述和进度文件。

我需要使用此文件中的数据更新现有行。线上的东西

update table_ticket set table_ticket.description = Description.txt where ticket_number = directoryname
Run Code Online (Sandbox Code Playgroud)

我使用的是PostgreSQL,该COPY命令对新数据有效,由于',; /特殊字符,它仍然会失败。

我想使用bash脚本执行此操作,但似乎不可能:

for i in `find . -type d`
do
  update table_ticket 
  set table_ticket.description = $i/Description.txt
  where ticket_number = $i
done
Run Code Online (Sandbox Code Playgroud)

当然,上面的代码将考虑到数据库的连接。

任何人都有关于如何使用Shell脚本实现此目标的想法。还是最好只用Java制作一些东西并读取和更新记录,尽管我想避免这种方法。

谢谢亚历克斯

postgresql shell

1
推荐指数
1
解决办法
4148
查看次数

标签 统计

postgresql ×3

shell ×2

file-io ×1

perl ×1