【发布时间】:2020-08-08 17:13:46
【问题描述】:
我正在将 csv 文件导入 Postgres 表。文件格式如下:
2019/12/13, 14:56:02, 3172.50, 3174.25, 3172.50, 3172.50, 1, 1, 1, 0
表定义为:
CREATE TABLE tablename (
date date,
time time,
v1 numeric,
v2 numeric,
v3 numeric,
v4 numeric,
v5 integer,
v6 integer,
v6 integer,
v7 integer,
PRIMARY KEY(date, time)
);
time 字段存在问题。在某些情况下,会添加毫秒以提高精度:
14:56:02.1
14:56:02.9
14:56:02.10
不幸的是,Postgres 似乎删除了尾随的零,这导致它将以下两个值标记为重复:
14:56:02.1
14:56:02.10
ERROR: duplicate key value violates unique constraint "tablename_pkey"
DETAIL: Key (date, "time")=(2019-12-13, 14:56:02.1) already exists.
CONTEXT: COPY input_file, line 1584
有没有办法指示 psql 不要删除尾随零?我试过 time(4) 强制执行 4 位精度,没有区别。
谢谢!
【问题讨论】:
标签: postgresql csv time primary-key trailing