Postgresql 将CSV文件导出到Postgres的数据更正

Postgresql 将CSV文件导出到Postgres的数据更正,postgresql,csv,postgresql-copy,Postgresql,Csv,Postgresql Copy,我正在将csv文件导入postgres,想知道如何在使用COPY命令时导入正确的数据类型。例如,我有一个列column\u1整数并希望将值6从我的csv文件插入其中 我运行命令copy“Table”从'path/to/csv'分隔符、'csv每次我尝试这样做时,都会出现错误错误:整数的输入语法无效:“column_1”。我发现这是因为它会自动将csv文件中的每一条数据作为字符串或文本导入。如果我将列类型更改为text,则它会成功工作,但这会破坏使用数字的目的,因为我需要它来进行各种计算。传输时是

我正在将csv文件导入postgres,想知道如何在使用
COPY
命令时导入正确的数据类型。例如,我有一个列
column\u1整数
并希望将值
6
从我的csv文件插入其中


我运行命令
copy“Table”从'path/to/csv'分隔符、'csv每次我尝试这样做时,都会出现错误
错误:整数的输入语法无效:“column_1”
。我发现这是因为它会自动将csv文件中的每一条数据作为字符串或文本导入。如果我将列类型更改为
text
,则它会成功工作,但这会破坏使用数字的目的,因为我需要它来进行各种计算。传输时是否有保存数据类型的方法?csv文件中是否有我需要更改的内容?或者是否有其他数据类型要分配给
列\u 1
?希望这是有意义的。提前谢谢

我做到了这一点,而且效果完美: 我将普通编号放入stack.csv
(stack.csv只有一个值6)


我在你的评论中看到,你的CSV文件中有25列。表中至少需要有25列。所有列都需要从CSV映射。如果表中有超过25列,则只需要映射从CSV映射的列。 这就是为什么它在
text
字段中工作,因为所有数据都放在一行单元格中

如果您的CSV文件中包含的“字段”的列多于以下格式

\copy stack(column1, column2, ..., column25) from 'stack.csv' with (format csv);

尝试如下
使用csv头将“表”从“路径/复制到/csv”
您的列中有很多
column_1
字符串还是只有一个?我有大约25行和25列,都填充了电子表格中已有的数据,基本上只需复制和粘贴所有信息,而不必手动重新输入每个单元格。我也尝试过header函数,但我也遇到了同样的问题。你到底在这里做什么?你能解释一下为什么这是不同的吗?我在你的评论中读到,你的CSV文件中有25列。表中至少需要有25列。所有列都需要从CSV映射。如果表中有超过25列,则只需要映射从CSV映射的列。如果你有,这是默认的,所以我推荐它。其他不同之处:我没有在我的桌子周围放上引号,而且你的CSV文件的路径很模糊。为什么要从命令中删除?
\copy stack(column1, column2, ..., column25) from 'stack.csv' with (format csv);