我使用篮球数据表来了解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..."
Run Code Online (Sandbox Code Playgroud)
用命令:
\copy coaches FROM '/Users/Desktop/Database/NBAPostGres/DataOriginal/coaches_data.csv' DELIMITER ',' CSV;
Run Code Online (Sandbox Code Playgroud)
当前表没有错过.所以我的问题是:
我错了什么,如果使用缺少值的表?
如何导入这样的表或处理这种结构一般(也就缺失值而言)?
数据结构:
coachid year yr_order firstname lastname season_win
HAMBLFR01 204 2 Frank Hamblen 10
RUSSEJO01 1946 1 John Russell 22
Run Code Online (Sandbox Code Playgroud)
我用了:
varchar integer integer character character integer
Run Code Online (Sandbox Code Playgroud)
Erw*_*ter 22
您可以为整个表保留列.告诉COPY(或psql的包装\copy),只填补那些列追加一列清单表,例如:
\copy coaches (coachid, yr_order, firstname)
FROM '/Users/.../coaches_data.csv' (FORMAT csv, HEADER, DELIMITER ',');Run Code Online (Sandbox Code Playgroud)
缺省值用列默认值填充.每个文件:
如果表中有任何列不在列列表中,
COPY FROM则会插入这些列的默认值.
但是,对于某些行,您不能缺少值.那是不可能的.可以使用文本表示(覆盖相应的列默认值).NULL
这一切都在手册中,真的:
| 归档时间: |
|
| 查看次数: |
18269 次 |
| 最近记录: |