plpgsql相关内容

如何在pgsql中动态创建触发函数?

我想编写一个pgsql函数来动态创建触发器.例如,一个用于对每个表中的插入进行计数的触发器.我已经试过像这样执行: CREATE FUNCTION trigen(tbl文本)返回$$开始执行格式('CREATE FUNCTION%s_insertCnt()返回触发器为$$开始UPDATE插入SET n = n + 1 WHERE表名=%s;结尾$$ LANGUAGE plpgsql',tbl, ..
发布时间:2021-04-28 20:33:16 其他开发

PostgreSQL,更新是否存在具有某些唯一值的行,否则插入

我有一个URL表.它们包含 (id int主键,网址字符各不相同,内容字符各不相同,最后分析日期). 我想创建触发器或某物(可能是规则),所以每次我从java程序进行插入时,如果存在具有此类URL的行,它将更新一些单行.否则,它应该执行插入操作. 请,您能在Postgresql中提供完整的代码吗?谢谢. 解决方案 已被多次询问.可能的解决方案可以在这里找到: https: ..
发布时间:2021-04-28 20:33:01 其他开发

使用PostgreSQL触发器动态审核数据

我有兴趣在现有的PostgreSQL数据库中使用以下审核机制. http://wiki.postgresql.org/wiki/Audit_trigger 但是,希望(如果可能)进行一种修改.我还想将primary_key的值记录在以后可以查询的位置.因此,我想在"logged_actions"表中添加一个名为"record_id"的字段.问题在于现有数据库中的每个表都有一个不同的主键 ..
发布时间:2021-04-28 20:32:29 其他开发

如何在Postgres中根据固定的时间间隔迭代表?

我想要获得在给定时间段内每个48h间隔都满足以下条件的所有行.每当它们都为真时,我会为其设置一个值为1的标志. 这是我到目前为止所做的. DO$$宣布我记录夏时制;开始为我选择* FROM schema.lab L加入schema.icu I ON L.ID = I.IDL.ITEM = 50912并且夏时制(I.INTIME-间隔"7天")环 ..
发布时间:2021-04-28 19:52:46 其他开发

PostgreSQL自定义周编号-包含2月1日的第一周

我是SQL函数的新手,我试图创建一个显示自定义星期数的日历表,每个星期从星期六开始,到星期五结束.每年的第一周始终包含该年的2月1日.例如,如果特定年份的2月1日星期几是星期二,则该年的第一周是1月29日至2月4日的 我已经为这个问题苦苦挣扎了几天,我唯一能想到的解决方案如下: 首先,我创建了一个日历表,该表的列名为"CustomizedWeekNo",以反映从2月1日开始的一周开始的 ..

计算一行中为NULL的属性的数量

我想向表中添加一个新列,以记录每个元组(行)的值为空的属性的数量.如何使用SQL来获取号码? 例如,如果一个元组是这样的: 名称|年龄|性别----- + ----- + -----布莱斯|100 |空值 我要这样更新元组: 名称|年龄|性别|空值----- + ----- + ----- + --------布莱斯|100 |null |1个 此外,因为我正在编写PL/pgSQ ..
发布时间:2021-04-24 20:50:00 其他开发

使用Postgres域简化功能输入验证

从昨天开始,我一直使用Postgres 11.5来查看 CREATE DOMAIN ,并想阐明它们如何/不能帮助函数参数.理想情况下,我想使用一个域来轻松筛选参数输入,但具有有用的错误响应.举例来说,我使用的是一个简单的第一种情况,该域会阻止null和空字符串: 创建域text_not_empty AS文本非空CHECK(值''); 我将其作为表的字段类型进行了尝试,这很棒.当我们不允许 ..
发布时间:2021-04-24 19:20:41 其他开发

将数组导出到PL/pgSQL中的CSV文件中

我有一个函数,该函数返回SETOF文本[].此函数的示例结果: {080213806381,“个人数据1",“问题1",answer1,“问题2",answer2,“问题3",“答案3"}{080213806382,“个人数据1",“问题1",answer1,“问题2",answer2,“问题3",“答案3"} 我正在用如下语句形成每一行: resultRow:= array_appe ..
发布时间:2021-04-16 20:45:20 其他开发

在文本数组上应用`trim()`和`regexp_replace()`

我正在尝试将PostgreSQL文本数组转换为一个数组,在该数组中,每个值都被替换为一个值,其中,每个空格的每一边都被字符包围.换句话说,我正在尝试对文本数组中的每个值应用 trim()和 regexp_replace().这是在数据库函数内部完成的. 创建或替换功能操纵数组(多值文本[])返回文字[] AS$ BODY $宣布单值文字;开始数组中的FOREACH单值多值循环SELECT tri ..
发布时间:2021-04-09 20:45:30 其他开发

列“"具有不受支持的类型"information_schema.sql_identifier";

我正在尝试在MySQL Workbench/j中测试我的存储过程.尝试调用存储过程时出现错误. 我创建了一个表来存储存储过程的结果 如果不存在则创建表(名称VARCHAR(50)编码lzo); 这是我的存储过程: 创建或替换过程sp_GetDistSchema()作为 '开始SELECT table_schema从information_schema.tables中获取能力;结尾;' ..

如何创建不返回任何内容的函数

我想用pl/pgsql编写一个函数. 我正在使用 PostgresEnterprise Manager v3 并使用shell来创建函数,但是我必须在shell中定义返回类型.如果未定义返回类型,则无法创建函数. 如何创建没有返回结果的函数,即创建新表的函数? 解决方案 使用RETURNS void如下: CREATE FUNCTION stamp_user(id int, c ..
发布时间:2020-11-11 02:44:52 其他开发

如何在plpgsql中使用变量作为表名

我是plpgsql的新手。我正在尝试在plpgsql中使用一个变量作为plpgsql中的表名运行一个简单的查询。但是变量将被解释为表名,而不是变量的值将被解释为变量名。 DECLARE v_table文本; z_table文本; max_id bigint; BEGIN FOR v_table IN 选择table_name FROM informatio ..
发布时间:2020-10-27 04:02:05 其他开发

FOR EACH STATEMENT触发示例

我一直在查看 PostgreSQL触发器的文档,但是似乎仅显示行级触发器的示例,但我找不到语句级触发器的示例。 尤其是,由于 NEW 是一条记录。 解决方案 OLD 和 NEW 为空或未在语句级触发器中定义。 每个文档: NEW 数据类型记录;变量,用于在行级触发器中执行 INSERT / UPDATE 操作的新数据库行。 此变量在语句级触发器中为 空,并且对于 DEL ..
发布时间:2020-10-16 06:08:16 其他开发

为PostgreSQL表创建别名

我有一个称为作业的表格。我希望能够使用assignments.column或homework.column来读取/写入该表中的所有列,我该怎么做? 我知道这通常不是您要做的。我需要能够做到这一点,以便在短时间内提供向后兼容性。 我们有一个iOS应用程序,该应用程序目前可以直接针对数据库执行postgresql查询。我们正在更新所有应用程序以使用API​​。在构建API的过程中,开发人员 ..
发布时间:2020-10-16 04:22:43 其他开发