postgresql数据库 copy命令导入表不成功

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postgresql数据库 copy命令导入表不成功相关的知识,希望对你有一定的参考价值。

出现:ERROR: invalid input syntax for integer: "1"
SQL 状态: 22P02
事件背景:COPY aa_log, line 1, column id: "1"
表格式为:
create table aa_log(
id int8,
callid int8,
calledid int8,
)
命令为:copy aa_log from '/root/data/dsestgroup_back.csv' with delimiter ',';
csv文件类容为:
1,2,3
4,5,6
因为一直尝试不成功,所以用一个简单的表测试,结果还是不成功。比较急,正确回答追加50分。

开始觉得这个导入是个比较简单的事情,经过测试你的这个copy,发现还不简单。

经过尝试,发现在导入时,需要在cvs文件中加入导入字段的定义,即第一行需要有字段名,然后在copy命令中要指定选项header为true. 另外,为了保证成功,还加入format指定为csv, 文件格式指定为utf8。

我的导入命令:

copy aa_log (id, callid, calledid)
from 'e:\\t01.csv'
with (format csv, header true, quote '"', DELIMITER ',', encoding 'UTF8');

导入文件内容:

id,callid,calledid
1,2,3
4,5,6

导入结果如下图,

参考技术A 参考:
工具:PostgreSQL客户端pgAdmin。

步骤:

1.将excel表格字段,按照postgresql 数据库中表的字段顺序来整理数据,并保存为csv文件。

2.用记事本打开csv文件,另存为UTF-8格式。

3.使用PgAdmin客户端链接postgresql数据库,执行如下脚本,导入csv文件到PostgreSQL数据表:

copy testdata from 'd:/test/testdata.csv' delimiter as',' csv quote as '"'

注:testdata 是postgreSQL数据库表的名称。
来源:http://blog.csdn.net/namelb/article/details/7909910追问

复制粘贴就免了

使用PostgreSql的Copy功能来导入增量数据的步骤

一、参照原数据表创建临时表

CREATE TEMP TABLE temp_testbulkcopy ON COMMIT DROP as (select * from testbulkcopy limit 0);

1、temp_testbulkcopy 为临时表的表名

2、testbulkcopy  为实际数据表的表名

3、ON COMMIT DROP 表示用完这次就自动删掉

 

二、把数据通过Copy的方式导入到临时表里 

COPY temp_testbulkcopy FROM C:data	estOutPut.csv WITH csv header DELIMITER | encoding UTF8;

 

三、根据主键删除实际表与临时重复的数据(有重复证明就有更新)

delete FROM testbulkcopy where "ID" in (select "ID" from temp_testbulkcopy);

 

四、把临时表的数据插入到实际表中

INSERT INTO testbulkcopy  select * from temp_testbulkcopy;

 

附录:

1、用来演示的表的建表语句:

CREATE TABLE public.testbulkcopy
(
    "ID" character varying(38) COLLATE pg_catalog."default" NOT NULL,
    "NAME" character varying(255) COLLATE pg_catalog."default",
    "CITY" character varying(255) COLLATE pg_catalog."default"
)

2、测试数据

ID|NAME|CITY
bedf812f-2311-4717-a749-8b1272fc3c86|张三|北京
bedf812f-2311-4717-a749-8b1272fc3c87|张三|北京
bedf812f-2311-4717-a749-8b1272fc3c88|张三|北京
bedf812f-2311-4717-a749-8b1272fc3c89|张三|北京
bedf812f-2311-4717-a749-8b1272fc3c81|张三|北京
bedf812f-2311-4717-a749-8b1272fc3c82|张三|北京
bedf812f-2311-4717-a749-8b1272fc3c83|张三|北京

 

以上是关于postgresql数据库 copy命令导入表不成功的主要内容,如果未能解决你的问题,请参考以下文章

求postgreSQL 的数据库的表数据,导入导出的sql语句,谢谢!

使用PostgreSql的Copy功能来导入增量数据的步骤

PostgresSQL使用Copy命令能大大提高数据导入速度

在 PostgreSQL 中使用 COPY FROM 命令在多个表中插入

PostgreSQL的。导入数据跳过n行

postgreSQL数据库里导入导出的sql语句是啥?