plpgsql相关内容

如何动态执行PostgreSQL RAISE命令

如果满足某些条件,如何引发PostgreSQL SQL语句的错误? 我尝试过下面的代码,但出现错误。 创建或替换功能“exec”(text) 返回文本AS $ BODY $ BEGIN EXECUTE $ 1; 返回$ 1; END; $ BODY $ LANGUAGE plpgsql VOLATILE; - 错误:“raise”或附近的语法错误 ..
发布时间:2017-10-01 15:46:45 其他开发

plpgsql错误“RETURN NEXT不能在OUT参数的函数中具有参数”在表返回功能

我在PostgreSQL 9.2中有一个plpgsql函数返回一个表。该函数运行多个SELECT,返回与函数相同的列,然后返回这些结果或引发异常,具体取决于某些检查。我可以看到这样做的唯一方法是使用FOR ... LOOP,但是我无法找到一种方便的方式来返回该行。 我想做这样的事情: 创建或替换函数my_function() RETURNS TABLE(column1 integer ..
发布时间:2017-10-01 13:43:11 其他开发

PostgreSQL自定义异常?

在Firebird中,我们可以声明自定义异常: CREATE EXCEPTION EXP_CUSTOM_0“异常:自定义异常”; 这些都存储在数据库级。在存储过程中,我们可以像这样引发异常: EXCEPTION EXP_CUSTOM_0; PostgreSQL中有一个等价物吗? 解决方案 不,不是这样。但是你可以提高和维护自己的例外,没有问题: CREATE ..
发布时间:2017-09-29 12:33:55 其他开发

PostgreSQL:正则表达式转义函数

要放弃阅读整个问题,我的基本问题是: PostgreSQL中是否有一个功能可以转义字符串中的正则表达式字符? 我已经浏览了文档(但也许不够彻底),但无法找到这样的功能。 这是完整的问题: 在PostgreSQL数据库中,我有一个列,其中包含唯一的名称。我还有一个进程定期在这个字段中插入名字,并且为了防止重复,如果需要输入一个已经存在的名称,它将附加一个空格和一个计数结尾的括 ..
发布时间:2017-08-29 00:18:54 开发方法

使emacs默认突出显示postgresql语法

我使用emacs编辑我的sql代码。我在postgresql plpgsql代码上工作99%的时间。所有我的扩展名为.sql的文件都包含postgresql。我很好奇有一种方法来设置SQL注入默认值而不是ANSI SQL,因为每次打开文件时切换模式非常烦人。 解决方案 通常在emacs中,如果要在每次打开某个模式时更改设置,都可以使用挂钩。与此类似的应该有效: (add-to-lis ..
发布时间:2017-08-08 01:13:01 开发方法

使用另一个查询的输出动态执行查询

X-45454545 X- 20045 X-45454545 X- 20045 X-454545 X-454545 X-454545新新新新新新新新新新新新旗200新新新新旗新新旗200新新新旗新新旗200新新新新新新旗200新新新新旗新新旗2001-新新新新旗新新旗200新新新新旗新新旗200新新新新旗新新旗200新新新新旗新1992新新旗新1992新新旗新1992:新新200新200新200新 ..
发布时间:2017-07-22 11:29:26 其他开发

减少plpgsql中的麻烦通知

我有一个使用临时表的函数,如果存在的话必须被删除。 drop table if exists t_xy; 创建临时表t_xy在提交下降为select ...; 随后我在视图中使用这个功能。该功能在选择正在进行时被多次调用。我喜欢使用“raise notice”命令,因为它几乎是在调试目的中报告函数中任何变量的唯一可靠的方法。问题是我必须搜索巨大的不必要的行,如: ..
发布时间:2017-04-21 22:24:06 开发方法

PostgreSQL检查以前的记录元素

我需要检查以前的记录元素,以确保查询日期不在开始日期前7天之间的特定范围内。我有以下代码: 创建或替换函数八(日期)返回文本为$$ 声明 r记录; checkDate别名$ 1; 开始 在 中选择*从期间 顺序由startDate 循环 如果(r.startDate和r.endDate之间的checkDate)然后 return q3(r.id); elsif(checkDa ..
发布时间:2017-04-15 13:11:30 其他开发

SQL状态:42601或接近“11”的语法错误

我有一个表 address_all ,它被几个地址表继承。 address_history 继承自父表 history_all 并保留当前地址信息。我正在创建继承 address_all 表的新表,并将信息从 address_history 复制到新表。 我的存储过程如下所示。当我打电话给我时,我有一些错误。为了更好地解释错误,我使用行号。 1创建或替换功能somefunc() 2 ..
发布时间:2017-04-14 03:15:10 其他开发

在PostgreSQL中每行执行一次延迟触发

我在表上有一个延迟的 AFTER UPDATE 触发器,当某列被更新时设置为触发。这是一个整数类型,我用作一个计数器。 我不是100%确定,但看起来像是在事务中增加特定列100次,触发器在事务结束时排队等待执行100次。 我希望触发器每行只能安排一次,不管我多少次,这个列增加了。 我可以这样做吗? 或者如果触发的触发器必须排队,无论它们是否重复,可以在触发器的第一次运行期间清除 ..
发布时间:2017-03-21 22:11:25 其他数据库

如果不存在,创建序列

我尝试使用检查序列是否存在postgres(plpgsql)。 创建序列(如果不存在)。两次运行此代码会导致异常: 序列...已存在。 仅当不存在时才能创建序列? 如果序列不存在,则不应写入消息不应该出现错误,所以我不能在这个问题的其他答案中使用存储过程,因为如果顺序存在,它每次写入消息到日志文件。 code> do $$ begin SET search ..