回答

收藏

pgAdmin4:导入CSV

技术问答 技术问答 85 人阅读 | 0 人回复 | 2023-09-13

我正在尝试使用pgAdmin4导入CSV。我使用查询创建了表格,
, _6 r% W0 @, P  yCREATE TABLE i210_2017_02_18
$ ]1 g0 f9 c! D% p" z9 s4 t. I. C( ](
. v2 |- M. U+ {2 w  PROBE_ID character varying(255),
# {; v! D, u* V0 m8 M2 g8 w  SAMPLE_DATE timestamp without time zone,, N9 V8 {$ S8 ~/ [9 k- J7 [
  LAT numeric,$ Y' F; r* w  o" E# D- v
  LON numeric,* b0 s; B* Z, y9 y- s% ?
  HEADING integer,
8 g+ \- f  m6 S, Z1 t# c* l  SPEED integer,6 ]3 ]9 P1 P. ^
  PROBE_DATA_PROVIDER character varying(255),; @+ o% g" U' p# x' Q
  SYSTEM_DATE timestamp without time zone3 P) ]9 {5 E& t# y" X! ~
)
3 D, q1 l+ }% Z' U( GCSV读取的标题和第一行是…7 D- B0 Y+ B/ ]2 e; y1 O! c, X
PROBE_ID,SAMPLE_DATE,LAT,LON,HEADING,SPEED,PROBE_DATA_PROVIDER,SYSTEM_DATE
! f0 E* N/ J8 E' R8 O' q/ A841625st,2017-02-18 00:58:19,34.11968,-117.80855,91.0,9.0,FLEET53,2017-02-18 00:58:58* r: N# b1 Z" c) s3 v3 [4 {% r- l
当我尝试使用导入对话框时,该过程失败,并显示错误代码1:
6 k# b: Z: B. P- J0 G$ rERROR:  invalid input syntax for type timestamp: "SAMPLE_DATE"
% E9 d: x0 h; Q! Q% SCONTEXT:  COPY i210_2017_02_18, line 1, column sample_date: "SAMPLE_DATE"3 b7 }2 \+ @: i$ }5 \/ ~
我觉得没什么错-有什么想法吗?1 ?3 b4 J' p& Y4 d
                4 C! R5 R: }4 e0 b: u
解决方案:# t0 i$ ]9 L9 i+ K+ _: [" l
               
, ]0 R" F2 C& _7 p
8 g, K; k# E% k: U. Z: p: [- c) S1 a! ~
( {7 j$ P3 ]: B( W                根据你的表结构,这种进口将在列失败HEADING和SPEED,因为它们的值有小数,您宣布他们作为INTEGER。删除小数点或将列类型更改为例如NUMERIC。
" ~" E/ ~3 F! V话虽如此,只需从pgAdmin尝试一下(考虑到文件和数据库位于同一服务器中):
! V* u$ l) p2 ^/ N1 c6 H# ?COPY i210_2017_02_18 FROM '/home/jones/file.csv' CSV HEADER;
4 j  m* V9 ~( I9 `  w" x/ |如果您要处理的是远程服务器,psql请在控制台中尝试使用:3 C. r$ i/ L! W) d8 m
$ cat file.csv | psql yourdb -c "COPY i210_2017_02_18 FROM STDIN CSV HEADER;"
" T) C/ [* _& ]4 Z, F如果您真的想坚持使用pgAdmin导入工具(我不建议这样做),请选择该Header选项,然后选择适当的选项Delimiter:
+ R" r5 `8 B5 J+ O5 O+ s; ?* n$ F; F$ R% }, x

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则