【问题标题】:How do I store a set of queries inside PostgreSQL so I can easily run it again?如何在 PostgreSQL 中存储一组查询,以便我可以轻松地再次运行它?
【发布时间】:2012-04-10 15:26:21
【问题描述】:

我想将一组查询(多个 SQL 更新)保存为可以使用 pgAdmin3 (PostgreSQL 9.1) 执行的单个元素。

我知道我可以将单个 SELECTS 保存为视图,但是多个 UPDATE 查询呢?

例子:

BEGIN;
UPDATE ...;
UPDATE ...;
COMMIT;

更新:我正在寻找的是使用 GUI 添加存储过程的分步指南,而不是运行创建它的 SQL 查询。

到目前为止,我遇到了"New function..."的两个问题:返回类型是必需的,发现NULL不可接受,于是尝试integer。另外,将类型设置为SQL,但我不知道在 SQL 选项卡中具体写什么,无论我尝试什么,确定按钮仍然被禁用,状态栏显示:请输入函数源代码。

【问题讨论】:

    标签: postgresql pgadmin


    【解决方案1】:

    您知道或尝试过存储过程(嗯,类似存储过程的函数)?

    http://www.postgresql.org/docs/9.1/interactive/plpgsql-structure.html

    叫它

    select <name of function>(<param1>, <param2>) as result;
    

    【讨论】:

    • 没错,但如何添加、运行和更新它?你能举个基本的例子吗?
    • 让我解释一下:我尝试使用语言 SQL 添加一个函数,但它询问我返回类型。
    • 我提供的页面中有创建示例(CREATE FUNCTION bla bla)。如果函数必须不返回任何内容,则可以使用 CREATE FUNCTION blabla (parameters) RETURNS void as $$。要运行它,请参阅我的编辑。要更新它:它必须出现在 pgAdmin 的树视图中的某个位置,不(这里没有)?
    • @sorin:是的,pgAdmin 在树视图的对象浏览器中显示函数。首先阅读manual about creating functions。继续使用 Raphael 提供的链接。请注意,SQL 函数与 plpgsql 函数不同。到目前为止,您可以将其中任何一个用于您的职位描述。
    【解决方案2】:

    这是缺少的基本 SQL 存储过程指南,它确实返回 1。

    • 右键单击函数并选择新建函数...
    • 完成namemy_procedurereturn typeintegerlanguagesql
    • 选择定义标签并写SELECT 1;
    • 完成

    很高兴知道您是否可以创建不返回任何内容的查询。

    【讨论】:

    • 谢谢。注意 - 看起来您的意思是将 SELECT 1; 放在“代码”选项卡中。
    猜你喜欢
    • 2019-05-19
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 1970-01-01
    • 2015-05-19
    • 1970-01-01
    相关资源
    最近更新 更多