plpgsql相关内容
我想编写一个pgsql函数来动态创建触发器.例如,一个用于对每个表中的插入进行计数的触发器.我已经试过像这样执行: CREATE FUNCTION trigen(tbl文本)返回$$开始执行格式('CREATE FUNCTION%s_insertCnt()返回触发器为$$开始UPDATE插入SET n = n + 1 WHERE表名=%s;结尾$$ LANGUAGE plpgsql',tbl,
..
我有一个URL表.它们包含 (id int主键,网址字符各不相同,内容字符各不相同,最后分析日期). 我想创建触发器或某物(可能是规则),所以每次我从java程序进行插入时,如果存在具有此类URL的行,它将更新一些单行.否则,它应该执行插入操作. 请,您能在Postgresql中提供完整的代码吗?谢谢. 解决方案 已被多次询问.可能的解决方案可以在这里找到: https:
..
我有兴趣在现有的PostgreSQL数据库中使用以下审核机制. http://wiki.postgresql.org/wiki/Audit_trigger 但是,希望(如果可能)进行一种修改.我还想将primary_key的值记录在以后可以查询的位置.因此,我想在"logged_actions"表中添加一个名为"record_id"的字段.问题在于现有数据库中的每个表都有一个不同的主键
..
我想要获得在给定时间段内每个48h间隔都满足以下条件的所有行.每当它们都为真时,我会为其设置一个值为1的标志. 这是我到目前为止所做的. DO$$宣布我记录夏时制;开始为我选择* FROM schema.lab L加入schema.icu I ON L.ID = I.IDL.ITEM = 50912并且夏时制(I.INTIME-间隔"7天")环
..
我是SQL函数的新手,我试图创建一个显示自定义星期数的日历表,每个星期从星期六开始,到星期五结束.每年的第一周始终包含该年的2月1日.例如,如果特定年份的2月1日星期几是星期二,则该年的第一周是1月29日至2月4日的 我已经为这个问题苦苦挣扎了几天,我唯一能想到的解决方案如下: 首先,我创建了一个日历表,该表的列名为"CustomizedWeekNo",以反映从2月1日开始的一周开始的
..
我想向表中添加一个新列,以记录每个元组(行)的值为空的属性的数量.如何使用SQL来获取号码? 例如,如果一个元组是这样的: 名称|年龄|性别----- + ----- + -----布莱斯|100 |空值 我要这样更新元组: 名称|年龄|性别|空值----- + ----- + ----- + --------布莱斯|100 |null |1个 此外,因为我正在编写PL/pgSQ
..
从昨天开始,我一直使用Postgres 11.5来查看 CREATE DOMAIN ,并想阐明它们如何/不能帮助函数参数.理想情况下,我想使用一个域来轻松筛选参数输入,但具有有用的错误响应.举例来说,我使用的是一个简单的第一种情况,该域会阻止null和空字符串: 创建域text_not_empty AS文本非空CHECK(值''); 我将其作为表的字段类型进行了尝试,这很棒.当我们不允许
..
所以我写了这样的斐波那契数列函数: 创建或替换功能fibonacci(lastN整数)返回int AS $$开始递归t(a,b)AS(值(0,1)全联盟从t选择SELECT GREATEST(a,b),a + b AS ab
..
我有一个函数,该函数返回SETOF文本[].此函数的示例结果: {080213806381,“个人数据1",“问题1",answer1,“问题2",answer2,“问题3",“答案3"}{080213806382,“个人数据1",“问题1",answer1,“问题2",answer2,“问题3",“答案3"} 我正在用如下语句形成每一行: resultRow:= array_appe
..
我正在尝试将PostgreSQL文本数组转换为一个数组,在该数组中,每个值都被替换为一个值,其中,每个空格的每一边都被字符包围.换句话说,我正在尝试对文本数组中的每个值应用 trim()和 regexp_replace().这是在数据库函数内部完成的. 创建或替换功能操纵数组(多值文本[])返回文字[] AS$ BODY $宣布单值文字;开始数组中的FOREACH单值多值循环SELECT tri
..
我正在尝试在MySQL Workbench/j中测试我的存储过程.尝试调用存储过程时出现错误. 我创建了一个表来存储存储过程的结果 如果不存在则创建表(名称VARCHAR(50)编码lzo); 这是我的存储过程: 创建或替换过程sp_GetDistSchema()作为 '开始SELECT table_schema从information_schema.tables中获取能力;结尾;'
..
有没有办法获取仅修改字段的JSON? 现在我使用以下触发器,但是整行都打印在变更日志中. 示例表格: TABLE tbl_changelog ( tbl TEXT, op TEXT, new JSON, old JSON ); TABLE tbl_items ( f1 TEXT, f2 TEXT ); 触发:
..
我有一个包含JSON和计划文本的文本列.我想将其转换为JSON,然后选择一个特定的属性.例如: user_data _________ {"user": {"name": "jim"}} {"user": {"name": "sally"}} some random data string 我尝试过: select user_data::json#>'{user,name}' fr
..
我想用pl/pgsql编写一个函数. 我正在使用 PostgresEnterprise Manager v3 并使用shell来创建函数,但是我必须在shell中定义返回类型.如果未定义返回类型,则无法创建函数. 如何创建没有返回结果的函数,即创建新表的函数? 解决方案 使用RETURNS void如下: CREATE FUNCTION stamp_user(id int, c
..
我是plpgsql的新手。我正在尝试在plpgsql中使用一个变量作为plpgsql中的表名运行一个简单的查询。但是变量将被解释为表名,而不是变量的值将被解释为变量名。 DECLARE v_table文本; z_table文本; max_id bigint; BEGIN FOR v_table IN 选择table_name FROM informatio
..
我一直在查看 PostgreSQL触发器的文档,但是似乎仅显示行级触发器的示例,但我找不到语句级触发器的示例。 尤其是,由于 NEW 是一条记录。 解决方案 OLD 和 NEW 为空或未在语句级触发器中定义。 每个文档: NEW 数据类型记录;变量,用于在行级触发器中执行 INSERT / UPDATE 操作的新数据库行。 此变量在语句级触发器中为 空,并且对于 DEL
..
创建或替换功能最近的(segment_insert() 返回触发器 声明id_temp整数; $ BODY $ 如果OLD.id = NULL则开始 然后 选择test_route.id到id_temp,ST_Distance(test_route.the_geom,NEW.the_geom) 从test_route , ORDER BY 2 ASC LIMIT 1; 更新设置p.e
..
我有一个称为作业的表格。我希望能够使用assignments.column或homework.column来读取/写入该表中的所有列,我该怎么做? 我知道这通常不是您要做的。我需要能够做到这一点,以便在短时间内提供向后兼容性。 我们有一个iOS应用程序,该应用程序目前可以直接针对数据库执行postgresql查询。我们正在更新所有应用程序以使用API。在构建API的过程中,开发人员
..
创建表public.orders( orderID串行主键, orderdate时间戳记NOT NULL ); 创建表public.orderdetails( orderdetailID串行主键, orderID整数引用public.orders(orderID), item varchar(20)NOT NULL, 数量INTEGER NOT NULL );
..
我正在尝试编写一个返回布尔值的PL / pgSQL函数: true ,如果多个表中的总行数大于或等于提供的值int参数,否则为 false 。 创建或替换功能allrecordsHaveUpdated(numberOfRecords int) 返回布尔值AS $$ 声明 totalRecords整数; recordsInserted boolean:= false; BEGI
..