gpt4 book ai didi

postgresql - 我可以在数据库服务器上复制 Postgresql 大对象吗?

转载 作者:行者123 更新时间:2023-11-29 11:34:42 25 4
gpt4 key购买 nike

我有一个大对象中的数据,现在我想制作它的一个副本,这样我就可以在保留原始副本的同时追加它。我可以使用任何 JDBC 调用或 SQL 语句来实现这种情况吗?

从我找到的每一个资源来看,似乎我实际上必须将所有数据读取到我的客户端并再次写出以获取副本。我更愿意节省往返行程。

最佳答案

如果您知道大对象的 oid,则可以使用两个查询复制/克隆一个大对象

INSERT INTO pg_largeobject_metadata (lomowner, lomacl) 
SELECT lomowner, lomacl
FROM pg_largeobject_metadata
WHERE oid = <my_old_oid>
RETURNING oid AS my_new_oid;

INSERT INTO pg_largeobject (loid, pageno, data)
SELECT <my_new_oid>, pageno, data
FROM pg_largeobject
WHERE loid = <my_old_oid>;

my_old_oid 是大对象的已知oid
my_new_oid 是第一条插入语句返回的oid

pg_large_object reference
Object Type Identifier (oid) reference

关于postgresql - 我可以在数据库服务器上复制 Postgresql 大对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5157923/

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