使用Postgres 10.6。
我的目标是找到最大尺寸
如果是oid
中一列的数据类型,我从https://www.postgresql.org/docs/9.2/largeobjects.html中了解到可以断定它是LOB列。我是否可以得出结论,如果列的数据类型不是oid
,则该列不是LOB?
如果不是,如何在模式中查找LOB列及其最大大小?
如果是,我在这里(Get size of large object in PostgreSQL query?)找到了如何根据给定的oid查找LOB的大小。到目前为止,我能想到的最好的方法是找到模式中最大的LOB值的大小,即遍历所有表中的所有LOB行,并取最大值。有没有更好的方法?
结论在任何方向上都是不安全的。我当然可以创建OID类型的列,并使用序列,随机数生成器或generate_series中的整数填充它。我还可以创建LO,然后将生成的OID填充到其他类型的列中,例如int
(int被签名,因此最终会溢出/环绕,但这还有很长的路要走),bigint
甚至text
。