小编Sab*_*lfy的帖子

如何将(文件)数据插入 PostgreSQL bytea 列?

这个问题不是关于 bytea v. oid v. blob v. large objects 等。

我有一个包含主键integer字段和bytea字段的表。我想在该bytea字段中输入数据。据推测,这可以由其中一种PL/语言完成,我PL/Python将来可能会考虑这样做。

由于我仍在测试和试验,我只想使用“标准”SQL 语句从文件(在服务器上)插入数据。我知道只有在服务器上具有写入权限的管理员才能以我想要的方式插入数据。在这个阶段我并不担心,因为用户bytea目前不会插入数据。我已经搜索了各种 StackExchange 站点、PostgreSQL 档案和互联网,但一直没有找到答案。

编辑: 这个2008 年的讨论意味着我想做的事情是不可能的。那么如何使用bytea字段呢?

编辑: 2005 年的这个类似问题仍未得到解答。

解决:所提供的细节在这里上的psycopg网站,我用Python编写的解决方案提供了基础。也可以使用 将二进制数据插入到bytea列中PL/Python。我不知道这是否可以使用“纯”SQL。

postgresql plpgsql datafile blob

49
推荐指数
4
解决办法
16万
查看次数

PostgreSQL 中的 BLOB 或引用

我需要将二进制数据文件存储在运行在 Ubuntu 服务器上的 PostgreSQL 数据库中。最初将有几十个文件,每个文件大小约为 250kb。但是,文件的数量会随着时间的推移而增加。我有时可能需要从文件中提取数据以进行其他下游分析。

我已经对将二进制数据存储为 BLOB 或引用的古老问题进行了一些研究。两者显然各有利弊。是否有任何与 PostgreSQL 相关的特定问题需要我注意?如果我想通过 PostgreSQL 函数或通过外部 Python 程序从文件中提取数据,是一种方法还是另一种方法更可取?

如果我将数据文件直接存储在数据库中,将它们存储在一个带有引用“主”表的外键的单独表中,而不是包含所有其他字段的表中会更好吗?

我已经阅读了这里的问题和答案;那里的评论表明在 Linux 上通过引用(在文件系统中)存储二进制文件更好。我在这里的问题特别与 PostgreSQL 有关,以及从文件中提取数据以进行各种分析。

更新:类似的问题

postgresql

11
推荐指数
1
解决办法
2102
查看次数

一个列的两个名称

我有foo一个表中命名的列。我在脚本中构建了查询,使用这个名称。

我现在想将表中的列重命名为bar. 这将破坏脚本(有几个,但如有必要,可以更改它们)。该表被其他表引用。我想重命名,因为该列中存储的内容的上下文已更改。

一个列可以有两个名称吗?

postgresql database-design

4
推荐指数
2
解决办法
1829
查看次数

额外的“计数”行,总数为 0

考虑以下:

db=> SELECT ga, count(ga) FROM gb GROUP BY ga ORDER BY ga ;
Run Code Online (Sandbox Code Playgroud)

这给出了以下输出:

ga | count
---+------
?  |  200
A  |  100
B  |   50
   |    0
(4 rows)
Run Code Online (Sandbox Code Playgroud)

为什么还有一个空行ga且计数为零?

count select

3
推荐指数
1
解决办法
67
查看次数

标签 统计

postgresql ×3

blob ×1

count ×1

database-design ×1

datafile ×1

plpgsql ×1

select ×1