我使用篮球数据表来了解 Postgres 9.2 和 phppgadmin。因此我想将 csv 表导入该数据库。但是,我得到:
ERROR: missing data for column "year"
CONTEXT: COPY coaches, line 1: ""coachid";"year";"yr_order";"firstname";"lastname";"season_win";"season_loss";"playoff_win";"playoff..."
使用命令:
\copy coaches FROM '/Users/Desktop/Database/NBAPostGres/DataOriginal/coaches_data.csv' DELIMITER ',' CSV;
当前表格没有遗漏。所以我的问题是:
我做错了什么,如果使用包含缺失值的表?
一般如何导入这样的表或处理这样的结构(包括缺失值)?
数据结构:
coachid year yr_order firstname lastname season_win
HAMBLFR01 204 2 Frank Hamblen 10
RUSSEJO01 1946 1 John Russell 22
我用过:
varchar integer integer character character integer
最佳答案
整个表格您可以缺少列。告诉 COPY
(或 psql 包装器 \copy
)通过将列列表附加到表中来仅填充选定的列:
\copy coaches (coachid, yr_order, firstname) FROM '/Users/.../coaches_data.csv' (FORMAT csv, HEADER, DELIMITER ',');
缺失值用列默认值填充。 The manual :
If there are any columns in the table that are not in the column list,
COPY FROM
will insert the default values for those columns.
但是您不能只是某些 行缺少值。那是不可能的。可以使用 NULL
的文本表示(否决相应的列默认值)。
这一切都在手册中,真的:
关于postgresql - 如何导入缺失值的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25593338/