plpgsql相关内容

如何找到PostgreSQL中是否存在函数?

与表格或序列不同,用户定义的函数不能通过的pg_class 。 如何查找要删除的所有功能的列表或 grant 他们,但是如何找到一个单独的函数(具有已知的名称和参数类型)并不是不言而喻的。那么如何找到一个函数是否存在? 编辑:我想以自动方式在函数中使用它。哪种解决方案性能最佳?陷阱错误是非常昂贵的,所以我想对我来说最好的解决方案是没有额外的步骤来将错误转化为错误,但是我可能在这个假设中是错误 ..
发布时间:2018-04-17 11:31:47 其他开发

如何在PostgreSQL中获取数据库中的函数列表及其参数?

我有一个拥有超过1000个函数的数据库。我想授予某些用户的执行权限。我不能手动执行,因此我想获取函数列表并编写代码为所有函数生成GRANT EXECUTE脚本。我尝试了下面的脚本,但这并没有给我参数。 SELECT'GRANT EXECUTE ON FUNCTION'|| nspname ||'。' || proname ||'TO gis;' FROM pg_catalog.pg_na ..
发布时间:2018-04-17 10:50:44 其他开发

从函数返回查询?

我使用的是PostgreSQL 8.4,我想创建一个返回多行查询的函数。 not 工作如下: 创建函数get_names(varchar)返回setof记录AS $$ 声明 tname别名为$ 1; res setof记录; begin 从mytable中select * into res其中name = tname; return res; end; $$语 ..
发布时间:2018-04-17 10:08:08 其他开发

如何在PostgreSQL 8.2中动态使用TG_TABLE_NAME?

我试图在PostgreSQL 8.2中编写一个触发器函数,它将动态地使用TG_TABLE_NAME来生成和执行SQL语句。我可以在PostgreSQL的后续版本中找到各种示例,但由于某些要求,我被困在8.2中。这是我的函数,因为它的工作原理,但很难动态: CREATE OR REPLACE FUNCTION cdc_TABLENAME_function()RETURNS trigger A ..
发布时间:2018-04-17 10:02:23 其他开发

将表名和列名定义为plpgsql函数中的参数?

我想要一个简单的,但我正在开始进入Postgres函数的第一步,我找不到任何可行的工作。创建一个函数,将修改表和/或列,我找不到正确的方式来指定我的表和列作为我的函数中的参数。 Something例如: CREATE OR REPLACE FUNCTION foo(t table) RETURNS void AS $$ BEGIN alter table t add col ..
发布时间:2018-04-17 09:48:27 其他开发

如何选择一个FOR循环内进行进一步的计算?

使用postgresql和postgis我有2个openstreetmap表,其中包含: 点:带有单个坐标的位置 多边形:带有坐标集的区域 现在,我试着循环点表每个记录我试图用postgis函数做一些计算,例如 ST_Intersects()。然后尝试将结果插入到另一个表中。 到目前为止,我只使用postgis完成了简单的 SELECT 查询函数,他们基本上是这样工作的: ..
发布时间:2018-01-28 13:53:21 其他开发

Postgres FOR LOOP

我试图从一个表格中随机抽取15000个ID。而不是每次手动按下运行,我试图做一个循环。我完全理解的不是Postgres的最佳使用,但它是我拥有的工具。这就是我到目前为止: for i in 1..25 LOOP insert into playtime.meta_random_sample 从tbl 中选择i,ID by random()limit 15000 end lo ..
发布时间:2018-01-27 23:00:20 其他开发

循环通过RECORD的列

我需要通过key / index循环访问 RECORD 项目,就像我可以在其他编程语言中使用数组结构一样。 例如: DECLARE data1 record; data2文本; ... BEGIN ... FOR data1 IN SELECT * FROM sometable LOOP for data2 IN SELECT ..
发布时间:2018-01-27 22:58:40 其他开发

函数循环并从多个表中选择数据

我是Postgres的新手,并且拥有一个具有相同结构的多个表的数据库。我需要从每个表中选择符合特定条件的数据。 我可以用一堆 UNION 查询,但是我需要搜索的表的数量会随着时间的推移而改变,所以我不想像这样对其进行硬编码。我一直在试图开发一个函数,将循环通过特定的表(他们有一个共同的命名约定),并返回一个记录表,但我没有得到任何结果,当我查询函数。函数代码如下: pre $ CREA ..