gpt4 book ai didi

postgresql - Postgres 中是否有用于 varchar 字段的差异/补丁函数/库

转载 作者:行者123 更新时间:2023-12-05 07:31:04 24 4
gpt4 key购买 nike

我需要定期更新 PG 数据库中大型 varchar 字段的值。我不想发送和应用整个值,而是只想发送一个差异值并通过补丁函数更新该字段。
那么,有人可以建议 PG 的差异/补丁功能吗?我使用的是 9.6 版本

谢谢,

最佳答案

这是我得到的:

对不起,更高版本(已经 2 年了)

安装这个:https://github.com/google/diff-match-patch

在 Ubuntu (18.04) 上,我安装了这个包 sudo apt-get install postgresql-plpython3-10

然后在 postgres 中:

CREATE EXTENSION IF NOT EXISTS plpython3u;
DROP FUNCTION IF EXISTS pyhton_patch;
CREATE FUNCTION pyhton_patch(incoming_body TEXT, old TEXT) RETURNS TEXT AS $$

from diff_match_patch import diff_match_patch
new_body = ''
old_body = old

try:
dmp = diff_match_patch()
patch = dmp.patch_fromText(incoming_body)
if patch is not None and len(patch):
new_body, _ = dmp.patch_apply(patch, old_body)
else:
new_body = incoming_body
except ValueError as e:
new_body = incoming_body
except Exception as ex:
new_body = incoming_body

return new_body

$$ LANGUAGE plpython3u;



SELECT * FROM pyhton_patch('@@ -1 +1 @@
-aaa
+aaba'::TEXT, 'aaa'::TEXT);

关于postgresql - Postgres 中是否有用于 varchar 字段的差异/补丁函数/库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51957385/

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