Postgresql 我是否需要将CREATETABLE语句的列顺序与导入数据表的列顺序相匹配?

Postgresql 我是否需要将CREATETABLE语句的列顺序与导入数据表的列顺序相匹配?,postgresql,import-from-excel,Postgresql,Import From Excel,我有一个Excel CSV数据表,我希望它被导入到一个新的PostgreSQL表中 Excel CSV数据表的列顺序如下: OrderDate, Region, Rep, Item, Units, Unit Price 这是我的CREATETABLE语句: CREATE TABLE officesupplies ( region varchar(20) order_date, rep_first_name varchar(30), unit_price float units float )

我有一个Excel CSV数据表,我希望它被导入到一个新的PostgreSQL表中

Excel CSV数据表的列顺序如下:

OrderDate, Region, Rep, Item, Units, Unit Price
这是我的CREATETABLE语句:

CREATE TABLE officesupplies (
region varchar(20)
order_date,
rep_first_name varchar(30),
unit_price float
units float
)

请注意,CREATETABLE语句中的列顺序与Excel不匹配。我已经测试过了,但它不起作用,但我想知道为什么它不能导入。只是想知道,提前谢谢

您可以在副本中指定列。这样,您就可以在列顺序与表不同的地方加载数据

在您的情况下,您应该使用

COPY officesupplies
   (order_date, region, rep_first_name, ...)
FROM 'filenaame';

我发现您的文件中有一个列项似乎与任何表列都不匹配。这行不通-在这种情况下,您必须先将数据加载到–staging table“中,或者使用第三方软件,如pgLoader。

语法看起来如何?我尝试使用以下方法:复制officesupplies区域、订单日期、代表姓名、单价、来自“C:\Users\Michael\Desktop\officesupplies.csv”的单位“DELIMITER”、“csv HEADER”;我得到了这个错误消息:错误:双精度类型的无效输入语法:4-Jul-14上下文:COPY officesupplies,第2行,column\u price:4-Jul-14 SQL state:22P02I扩展了我的答案;它太短。表定义中缺少三个逗号、一个类型、一个空格和一个分号。