gpt4 book ai didi

postgresql - PL/pgQSL - 在存储过程中枚举 ROWTYPE

转载 作者:行者123 更新时间:2023-11-29 13:37:09 26 4
gpt4 key购买 nike

将数据从 csv 加载到现有 Postgres 表后,我将有需要合并的重复记录。为此,我计划使用执行以下操作的存储过程:

   current_record airports%ROWTPE;
new_record airports%ROWTYPE

FOR current_record in SELECT * from airports ORDER BY iko LOOP
SELECT * into (STRICT) new_record from airports where iko=current_record.iko AND oid < current_record.oid
-- IS IT POSSIBLE TO enumerate over each field as follows?
FOR int i = 0; i < new_record.fields.count; i++ LOOP
IF new_record.field[i] IS NOT NULL THEN current_record.field[i] =
new_record.field[i]
END LOOP;
END LOOP;

我能否如上所示使用 FOR 内部循环枚举字段,或者我是否必须对表中每个字段的更改逻辑进行硬编码?大约有 70 列。

关于如何做到这一点的其他更好的方法也会有所帮助。

TIA。

最佳答案

没有对此的直接支持。但是,您可以从您的函数中查询系统目录。但这不会让事情变得更快。

这是一个关于如何在触发器中执行此操作的示例。这可能会让你开始朝着正确的方向前进。

http://wiki.postgresql.org/wiki/PL/pgSQL_Dynamic_Triggers

关于postgresql - PL/pgQSL - 在存储过程中枚举 ROWTYPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7279215/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com