问题标签 [postgresql-copy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - 在 postgresql 中使用复制时如何忽略重复键
我正在使用 COPY table_name FROM STDIN 导入数据。这是非常有效的,但如果有任何重复密钥的违反,整个过程将被停止。有什么办法解决这个问题吗?
为什么 postgresql 不只是发出警告并复制其余数据?
这是示例:
这里“名称”字段具有唯一约束。由于字符串“abc”已经存在于表中。它忽略了整个过程。
sql - 如何将 PostgreSQL 输出保存到文本文件
我一直在为其他 StackOverflow 响应而苦苦挣扎。我想将查询的输出保存到本地文本文件 - 只要文本文件在我的本地机器上,它的位置并不重要。
我正在使用的代码:
此代码的错误是:
postgresql - 如何从 CSV 为 PostgreSQL 副本生成模式
给定一个包含几十列或更多列的 CSV,如何创建可用于 PostgreSQL 中的 CREATE TABLE SQL 表达式以与 COPY 工具一起使用的“模式”?
我看到了很多关于 COPY 工具的示例和基本的 CREATE TABLE 表达式,但是没有详细说明当您有可能禁止手动创建模式的列数时的情况。
mysql - 当值为 '2"%' 时在 postgresql 中使用复制时出错
我有一个表,其中包含 300,000 行不受我控制,我需要导入。
我使用以下命令从 mysql 导出数据:
然后我尝试使用例如导入每个表:
这适用于大多数表,也适用于包含 450,000 行的表。但在一个我得到这个错误:
当我检查COUV_MOUSSES
第 190'310 行中的字段时,它包含以下值:2"%
.
我必须改变什么才能让它工作?
为了"2""%"
根据@klin(谢谢!)获得正确的输出,我必须添加--fields-escaped-by='"'
到 mysqldump 命令。这样就变成了:
问题是:现在 Null 值导出为"N
.
好吧,没问题,我想了想,把复制命令改成:
这会在 Postgres 中产生以下错误:
而且似乎在 MySQL 中不能更改 Null 值的表示。
postgresql - 将csv文件填充到sql中
我尝试运行相同的命令。我将人口 csv 移至我的文档文件夹。
这是我得到的结果。
database - 从带有中文字符的txt文件中复制表 - Windows上的Postgresql
我正在尝试使用 PostgreSQL 中的 \copy 命令从包含中文字符的 txt 文件中加载表。我有一个测试表,其中只有一列 Names Varchar(25)。当我从 PSQL 或 PgAdmin 运行插入语句时
insert into test values ('康狀態概');
它可以正常工作并正确插入值。当我将相同的值放入 txt 文件(比如 text.txt)并尝试使用复制命令并加载 test.txt 的内容时
\copy test from 'D:/database/test.dat';
它仅在 Windows 上引发错误ERROR: character with byte sequence 0xa6 0x82 in encoding "GBK" has no equivalent in encoding "UTF8"
。我将 Windows 服务器的语言环境和键盘设置更改为中文,但无论是否更改语言环境设置,它都不起作用。
相同的练习在 Linux 上运行良好,无需任何更改。
有人可以建议这里需要做什么吗?
谢谢
python - 替代“写入文件”以使用 COPY 将 CSV 数据传输到 PostgreSQL 以获得更好的性能?
我有一个包含 2500 行的 CSV 文件中的数据集。该文件的结构(简化)方式:
id_run; run_name; receptor1; receptor2; receptor3_value; [...]; receptor50_value
文件的每个接收器都已经在一个表中并且具有唯一的 ID。
我需要将每一行上传到具有这种格式的表中:
实际上,我正在将需要上传的所有数据写入 .txt 文件中,并且我正在使用 postgreSQL 中的 COPY 命令将文件传输到目标表。
对于 2500 次运行(因此 CSV 文件中有 2500 行)和 50 个受体,我的 Python 程序在要上传的文本文件中生成约 110000 条记录。
我正在删除目标表的外键并在上传后恢复它们。
使用这种方法,生成文本文件实际上需要大约 8 秒,将文件复制到表中需要 1 秒。
有没有一种方法、方法、库或其他任何我可以用来加速准备上传数据的方法、方法、库或其他任何东西,以便 90% 的时间不是用于编写文本文件?
编辑:
这是我的(更新的)代码。我现在正在使用批量写入文本文件。它看起来更快(在 3.8 秒内上传了 110 000 行)。
编辑#2:
使用 cStringIO 库,我用类似文件的对象替换了临时文本文件的创建,但速度增益非常非常小。
代码更改:
sql - 从命令行处理 COPY 到 CSV 中的引号
我正在尝试从命令外壳运行此 COPY 查询:
我知道您可以使用 psql 从命令行运行查询:
但是我怎样才能将两者结合起来呢?以下似乎不起作用,但我不确定如何/是否需要逃脱。
sql - 使用链接/参考 ID 复制 postgres 数据库
试图提取数据库表的 csv
使用... COPY sale_order TO '/tmp/salesorder.csv' DELIMITER ',' CSV HEADER;
我明白了。。
- id - partner_id
- 1 - 45
- 2 - 55
“partner_id”引用另一个表“contacts”作为id,我想要“name”
我可以参考 partner_id 来输出吗
- 身份证 - 姓名
- 1-弗雷德博客
- 2 -约翰·史密斯
sql - 将数字字段中带逗号的数据导入红移
我正在使用 SQLCOPY
语句将数据导入 redshift。COPY
数据在语句拒绝的数字字段中具有逗号千位分隔符。
该COPY
语句有许多选项来指定字段分隔符、日期和时间格式以及 NULL 值。但是我没有看到任何指定数字格式的内容。
我是否需要在加载之前对数据进行预处理,或者有没有办法让红移来正确解析数字?