从SELECT查询的结果生成UPDATE查询

时间:2013-06-20 06:28:50

标签: postgresql

我正在寻找一种基于某些SELECT查询结果创建UPDATE查询的简单方法。这样做的目的是创建一个私有配置文件,我计划在从“公共”备份恢复数据库后运行该文件。

例如,假设我有一个名为setting的表,其表结构如下:

| id_setting | name | value | module |

和查询如:

select * from setting where module = 'voip'

根据这些查询的结果,我想生成最终存储到配置脚本中的INSERT / UPDATE语句。

任何想法如何实现这一点都是一种通用方式?

PS。我知道我可以将SQL的各个部分连接在一起,但我觉得这种方法耗费时间。

1 个答案:

答案 0 :(得分:0)

pgAdmin中最接近的是查询工具(请参阅http://www.pgadmin.org/docs/1.16/query.html)。这不会将您的select语句转换为查询,但如果您不想解析和连接,则可以以图形方式构建查询。

如果这将是一个重大的重复任务,我会考虑编写一个Perl脚本来解析查询并根据需要重写它。这需要一些内部知识。目前尚不清楚您希望如何更新值,因此您必须围绕这个设计解决方案。更有可能你想编写一个功能API(一个UDF)来做你想做的事情,然后写一个调用,可能不是直接在配置文件中(因为你不能清楚它可以信任),而是通过一个接口。