postgresql - 在 Postgreql 中,如何确定 postgres 表中的列是否为 LOB 类型,然后如何找到模式中最大 LOB 值的大小?
问题描述
使用 Postgres 10.6。
我的目标是找到最大尺寸
如果 中的列的数据类型oid
,我从https://www.postgresql.org/docs/9.2/largeobjects.html了解到它可以断定为 LOB 列。我可以得出结论,如果列的数据类型 not oid
,那么该列不是 LOB?
如果不是,我该如何查找架构中的 LOB 列及其最大大小?
如果是,我在这里找到(Get size of large object in PostgreSQL query?)如何在给定 oid 的情况下找到 LOB 的大小。到目前为止,我能想到的最佳方法是查找模式中最大 LOB 值的大小,即遍历所有表中的所有 LOB 行,并取最大值。有更好的方法吗?
解决方案
这个结论在任何一个方向上都是不安全的。我当然可以创建一个 OID 类型的列,并用来自序列、随机数生成器或 generate_series 的整数填充它。我还可以创建 LO,并将生成的 OID 填充到其他类型的列中,例如int
(int 已签名,因此最终会溢出/环绕,但这还有很长的路要走),bigint
甚至text
.
做这些事情并没有真正的意义,但人们有时会做一些没有意义的事情。
推荐阅读
- python - 运行 wsgi.py 时出现 ModuleNotFoundError
- excel - google sheet是否支持类似于excel宏的功能
- xcode - 您必须在上次反应本机升级后启用位码重建它
- group-by - 当其观察值不包含 SAS 中的某些值时删除组
- javascript - 我想将数据从父组件(状态)传递给子组件
- c++ - QDialog派生类
- java - java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void androidx.appcompat.app.ActionBar.hide()”
- assembly - 6502 汇编器中的 BCD 十进制分数比较
- python - Python,如何正确设置索引
- loopback4 - 使用 Firebase 登录的 Loopback 4 身份验证