将PL/pgSQL输出从PostgreSQL数据库保存到CSV文件的最简单方法是什么?
我正在使用PostgreSQL 8.4和pgAdmin III以及PSQL插件来运行查询.
如何编写从CSV文件导入数据并填充表的存储过程?
我正在尝试通过命令行将带有标题的PostgreSQL表导出到CSV文件,但是我将其导出到CSV文件但没有标题.我也需要那些标题.我的代码如下所示
COPY products_273 to '/tmp/products_199.csv' delimiters',';
Run Code Online (Sandbox Code Playgroud) 我有一个名为的数据库模式:nyummy和一个名为的表cimory:
create table nyummy.cimory (
id numeric(10,0) not null,
name character varying(60) not null,
city character varying(50) not null,
CONSTRAINT cimory_pkey PRIMARY KEY (id)
);
Run Code Online (Sandbox Code Playgroud)
我想将cimory表的数据导出为插入SQL脚本文件.但是,我只想导出城市等于'东京'的记录/数据(假设城市数据都是小写的).
怎么做?
解决方案是否在免费的GUI工具或命令行中无关紧要(尽管GUI工具解决方案更好).我曾尝试过pgAdmin III,但我找不到这样做的选择.
我想将CSV文件复制到Postgres表.这个表中大约有100列,所以如果我不需要,我不想重写它们.
我正在使用该\copy table from 'table.csv' delimiter ',' csv;命令但没有创建表格ERROR: relation "table" does not exist.如果我添加一个空白表我没有错误,但没有任何反应.我尝试了这个命令两三次,没有输出或消息,但是当我通过PGAdmin检查时表没有更新.
有没有办法导入包含标题的表,就像我想要做的那样?
使用PostgreSQL数据库运行1个项目NodeJ时遇到问题.尝试使用COPY命令在pgAdmin中插入数据时出错.
COPY beer (name, tags, alcohol, brewery, id, brewery_id, image) FROM stdin;
Bons Voeux blonde 9.5 Brasserie Dupont 250 130 generic.png
Run Code Online (Sandbox Code Playgroud)
这个数据在 要点:
这个错误:
ERROR: syntax error at or near "Bons"
SQL state: 42601
Character: 1967
Run Code Online (Sandbox Code Playgroud)
我需要将结果数据从PostgreSQL中的查询导出到Excel/CSV.
我用PostgreSQL 8.2.11.
SQL error:
ERROR: relative path not allowed for COPY to file
In statement:
COPY (select distinct(m_price) from m_product)TO '"c:\auto_new.txt"';
Run Code Online (Sandbox Code Playgroud) 给定具有几十列或更多列的CSV,如何创建可以在PostgreSQL中的CREATE TABLE SQL表达式中使用以与COPY工具一起使用的"模式"?
我看到了很多关于COPY工具和基本CREATE TABLE表达式的示例,但是当您手动创建模式的列数可能过高时,没有详细说明.
今天,我花了一天时间来改进我的Python脚本的性能,该脚本将数据推送到我的Postgres数据库中.我以前是这样插入记录的:
query = "INSERT INTO my_table (a,b,c ... ) VALUES (%s, %s, %s ...)";
for d in data:
cursor.execute(query, d)
Run Code Online (Sandbox Code Playgroud)
然后我重新编写了我的脚本,以便创建一个内存文件,而不是用于Postgres的COPY命令,它允许我将数据从文件复制到我的表:
f = StringIO(my_tsv_string)
cursor.copy_expert("COPY my_table FROM STDIN WITH CSV DELIMITER AS E'\t' ENCODING 'utf-8' QUOTE E'\b' NULL ''", f)
Run Code Online (Sandbox Code Playgroud)
这种COPY方法速度惊人.
METHOD | TIME (secs) | # RECORDS
=======================================
COPY_FROM | 92.998 | 48339
INSERT | 1011.931 | 48377
Run Code Online (Sandbox Code Playgroud)
但我找不到任何关于为什么的信息?它与多线程的工作方式有何不同INSERT,使其更快?
也看到这个基准:
# original
0.008857011795043945: query_builder_insert
0.0029380321502685547: copy_from_insert
# 10 records …Run Code Online (Sandbox Code Playgroud) 我正在尝试将.txt文件导入PostgreSQL.txt文件有6列:
Laboratory_Name Laboratory_ID Facility ZIP_Code City State
Run Code Online (Sandbox Code Playgroud)
213行.
我正在尝试使用此命令\copy将此文件的内容放入doe2PostgreSQL 中调用的表中:
\copy DOE2 FROM '/users/nathangroom/desktop/DOE_inventory5.txt' (DELIMITER(' '))
Run Code Online (Sandbox Code Playgroud)
它给了我这个错误:
Run Code Online (Sandbox Code Playgroud)missing data for column "facility"
当我遇到这个错误并没有任何帮助时,我已经四处寻找该怎么做了.有人遇到过这种情况么?
postgresql ×10
postgresql-copy ×10
csv ×5
bulk-load ×1
export ×1
file-io ×1
heading ×1
insert ×1
pgadmin ×1
psql ×1
python ×1
schema ×1
sql ×1
sql-insert ×1
sql-scripts ×1