问题标签 [plpgsql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1599 浏览

database - Postgres触发器执行速度的差异?

我有一个在表插入或更新时执行函数的触发器。它看起来像这样:

当我插入一行时,它似乎运行得很慢。使用解释分析,我确定这个触发器需要将近 400 毫秒才能完成。

但是,如果我在函数中运行这两个大量的 SQL,它们每个只需要 3 或 4 毫秒即可运行!

第一部分:

第二部分:

这对我来说毫无意义。

有什么想法吗?

谢谢。

0 投票
2 回答
5539 浏览

postgresql - 如何从函数返回更新的行

我对postgres很陌生。我想创建一个更新多行并选择受影响行的函数(如存储过程)。

这是我的声明:

只要只有 1 行受到影响,它就可以正常工作。但是当更多行受到影响时,它不会。

0 投票
1 回答
145 浏览

postgresql - 如何在 Pl/pgSQL 中使用声明的参数作为查询的组件?

我正在尝试在 pl/pgsql 中做一个通用函数。我面临一个我无法弄清楚的问题。请参阅在声明块中我为某些参数赋值。我想知道如何将它们用作查询的组件。(示例:BEGIN/END 块,groupby_join_field)

欢迎每一个想法,

编辑 :

在这种情况下 goupby_join_field 的值是 year_id,所以我希望引擎能够理解 dim_date.year_id

0 投票
3 回答
3810 浏览

ruby-on-rails - 如何使用 PostgreSQL 触发器?

我正在尝试在我的 rails 应用程序中使用 PostgreSQL 触发器。所以我尝试使用这种迁移,其中触发器的执行应该很容易:

但这并没有改变什么。如果我要在这里使用一个,我不知道在哪里编写过程或函数......

0 投票
1 回答
1400 浏览

postgresql - pl/pgsql 数组作为聚合函数的输入

我正在编写执行一些统计处理的 pl/pgsql 函数。使用 8.2 的 postgres。我想使用这个方便的聚合函数:

regr_slope(Y, X)

但是,我将我的 X 和 Y 数据存储为 pl/pgsql 函数中的本地数组: y double precision[]; x 双精度[];

问题是当我在 pl/pgsql 函数中使用它作为一行时:

坡度:= regr_slope(y,x);

我收到一条错误消息,指出该函数不可用或参数错误。我怀疑这是因为输入应该从表中选择为列,而不是作为双精度数组传递。

有没有办法用本地数组制作 regr_slope 函数?(即,某种方式将数组转换为聚合函数的有效输入?)

谢谢你。

0 投票
1 回答
176 浏览

plpgsql - PSQL : 更新一个也使用了触发器的表

解决这个问题的最佳方法是什么。

所以我在桌子上使用触发器。与触发器相关的函数更新使用触发器的同一个表。

这是一个问题,因为它不能两者兼得。

0 投票
1 回答
235 浏览

postgresql - PostgreSQL:比较 IPv4 地址的前 3 个数字?

我正在尝试编写一个 PHP 脚本,用户可以在其中评价其他用户的“优点”:

为了(尝试)防止篡改,我想在过去一小时内删除来自同一 IP 的相同 ID 的条目

(由于代理/路由器偶尔的误报是可以的 - 因为失去评级是可以的,因为作者可以在以后的任何时间重新提交它;但是让一些白痴在不同的 id 下注册并破坏我的整个数据库是不行的当我离开网站时):

请问我有2个问题:

1)如果我只想比较IP地址的前3个数字而不是4个,我该怎么做? (是的,我知道 IPv4 网络的 A、B、C 类型,在这里没关系......)

2)我需要为我的表添加索引还是已经为 id 和 author 编制了索引?

谢谢!亚历克斯

0 投票
4 回答
12277 浏览

database - 从 PostgreSQL 函数生成 HTML

谁能帮我这个?我的任务是编写一个函数,该函数将从 PostgreSQL(plpgsql 语言)中的给定表名生成 HTML 表。我已经写了这个,但这远不是我需要的。它会为我要给出的列生成一个表(目前只有一个),但我只需要给表一个名称。

创建或替换函数 genhtml2(tablename text, columnname text)
RETURNS text AS $BODY$ DECLARE result text := ''; searchsql 文本 := ''; var_match text := ''; 开始搜索sql := 'SELECT' || 列名 || '来自' || 表名 || '';

返回结果;结尾; $BODY$ 语言 'plpgsql' 不可变;

0 投票
1 回答
41051 浏览

postgresql - plpgsql 函数返回表(..)

我试图让这个 plpgsql 函数工作:

它一直在第 2 行 - 表上给我一个错误..

错误:“TABLE”第 2 行或附近的语法错误:RETURNS TABLE(designacion varchar(255),timebeingrotten varch... ^

***错误** *

错误:“TABLE”SQL 状态或附近的语法错误:42601 字符:67

0 投票
0 回答
4331 浏览

postgresql - 删除触发器中的行 (PostgreSQL)

我有一个更新触发器,应该删除行OLD*,但我不知道表结构。所以我尝试使用 information_schema 来获取列名,但它真的很慢。

是否可以在不了解表结构的情况下执行删除?

UPD: 触发器应该接受任何表的行,因此触发器函数在调用之前无法知道该表的任何信息。

UPD2:
这对我很有效: