【问题标题】:Attempting to Import CSV with Practical SQL guide尝试使用实用 SQL 指南导入 CSV
【发布时间】:2020-07-08 10:54:40
【问题描述】:

我是 SQL 新手,从 Practical SQL 书开始学习。我在第 4 章,正在尝试导入美国人口普查 CSV。我已经创建了包含如下所示列的表:https://github.com/anthonydb/practical-sql/blob/master/Chapter_04/Chapter_04.sql。

我的问题是,当我尝试导入从https://raw.githubusercontent.com/anthonydb/practical-sql/master/Chapter_04/us_counties_2010.csv 提取的 CSV 时,出现以下错误:

"ERROR:  value too long for type character varying(90)
CONTEXT:  COPY us_counties_2010, line 2, column geo_name: "Autauga County,AL,050,3,6,01,001,1539582278,25775735,54571,22135,+32.5363818,-086.6444901,54571,5370..."
SQL state: 22001"

我不确定我哪里出错了,希望得到您的指导。抱歉,如果这是一个令人讨厌的简单问题,但我仍在寻找自己的脚。

【问题讨论】:

    标签: sql pgadmin-4


    【解决方案1】:

    因为报错说值太长,我看了一下这句话的值是什么意思。根据您从 github 引用的链接,错误是引用 geo_name,即 varchar(90)。这意味着 geo_name 值必须为 90 个字符或更少才能“适应”该约束。

    CSV 似乎正在尝试加载为一个长字符串。所以它不会将“Autauga County”作为第一个地理名称加载,尽管这是目标。相反,它在错误的最后部分显示了这一点:

    geo_name: "奥陶加县,AL,050,3,6,01,001,1539582278,25775735,54571,22135,+32.5363818,-086.6444901,54571,5370..."

    看起来它正在尝试加载整个字符串,包括作为地理名称的逗号,所以它超过 90 个字符,所以它给出了一个错误。

    你想把它加载到什么地方?

    【讨论】:

    • 这就是我认为正在发生的事情......我在 pgAdmin4 工作。我不确定我哪里出错了,我正在编写的所有手册似乎都没有解释这一点。我什至尝试过使用导入工具,而不是写出代码。我将逗号指定为分隔符,但仍然没有运气...
    • Sam,我猜应该有一个“预览窗格”类型的窗口,显示软件在实际导入之前计划如何管理导入。这就是我将重点关注的地方,看看您是否可以做/改变任何事情来帮助它正确加载。之后,我会与在 PGAdmin 上工作的人联系。我查了一下(我以前从未使用过),它是开源的……可能有专门针对这个程序的帮助论坛。祝你好运:)
    猜你喜欢
    • 2016-05-05
    • 1970-01-01
    • 2014-02-15
    • 2020-05-02
    • 2016-11-02
    • 1970-01-01
    • 2012-04-14
    • 2020-03-10
    • 2017-03-24
    相关资源
    最近更新 更多