1

我正在使用以下命令将 CSV 文件导入到 cockroachdb 中的表中:

\| IFS=","; while read a1 a2; do echo "INSERT INTO sales VALUES ($a1, $a2);"; done < sales.csv;

我的 csv 文件只有两行:

ID, time
14,2013-02-17 05:39:36.710332000

列的数据类型:

first column: NUMBER(10, 0)
second column: TIMESTAMP

我收到以下错误:

syntax error at or near "5"

INSERT INTO sales VALUES (14, 2013-02-17 05:39:36.710332000
                                         ^

根据CockroachDB 文档,我认为我使用了正确的TIMESTAMP格式(YYYY-MM-DD HH24:MI:SSXFF)。

有什么建议么?

我还尝试在没有毫秒的情况下更改第二列中的数据,例如

2013-02-17 05:39:36

但我得到同样的错误。

4

1 回答 1

2

您需要引用您的时间戳字符串:

jordan@:26257/test> INSERT INTO derp VALUES (1, 2013-02-17 05:39:36.710332000);
invalid syntax: statement ignored: syntax error at or near "5"
jordan@:26257/test> INSERT INTO sales VALUES(1, '2013-02-17 05:39:36.710332000')
INSERT 1

您也可以修改脚本来执行此操作,如下所示:

\| IFS=","; while read a1 a2; do echo "INSERT INTO sales VALUES ($a1, '$a2');"; done < sales.csv;
于 2017-07-17T20:25:50.603 回答