为什么从CSV文件导入数据时会出现此DBeaver错误?

ecfdbz9o  于 2023-10-13  发布在  其他
关注(0)|答案(4)|浏览(591)

我是个学生,我在做一个项目。前提是,我正在编写的这个程序将学生注册的天数(M-F)、他们每天注册的小时数以及他们注册的课程作为输入。然后,它查询PostgreSQL数据库中每个模块的进度小时数(作业应该花费多长时间的“标准值”),并运行一个算法,输出学生应该争取的近似截止日期,以便在截止日期前完成课程(这是为整个课程而不是为单个作业设置的)。
现在,我已经在过去的数据库工作,但对于下一个交付,我正在大修程序,以增加对学生选择他们的程序的支持,然后将填充一个选项菜单与适当的课程。为此,我需要添加更多的测试数据。在将其他CSV文件导入架构的过程中,出现了一个错误:
无法加载实体属性
原因:找不到目标属性[序列]
在CSV文件中,“Sequence”是其中一列的名称。
这个错误是什么意思?那么,我该如何解决呢?我已经看过CSV,我找不到任何明显的错误;标题在那里,沿着所有相关的数据。理论上,我可以在DBeaver中直接使用CSV文件创建一个连接,而不是将它们的数据导入数据库,我已经测试了这种方式,它确实像预期的那样工作,但是我用来查询数据库的Python模块(psycopg 2)似乎无法找到它,如果我这样做,而不是使用传统的数据库(这是我如何做到这一点之前,改变我的数据库)。
编辑:作为对Adrian评论的回应,CSV数据的示例如下:

PK,Active,Sequence,Name,Number,Hours,Start Date,Stop Date,Modified When,Modified By
183328,TRUE,1,ASP.NET Core Fundamentals,1,2.00,07-01-2020,06-30-2299,06-12-2020 09:09:27 AM,Laraine.Moellendorf
183329,TRUE,2,F-Q1,2,3.00,07-01-2020,06-30-2299,06-12-2020 09:09:27 AM,Laraine.Moellendorf
183330,TRUE,3,Assignment - Clock-in Station,3,5.00,07-01-2020,06-30-2299,06-12-2020 09:09:27 AM,Laraine.Moellendorf
183331,TRUE,4,ASP.NET MVC Fundamentals,4,2.00,07-01-2020,06-30-2299,06-12-2020 09:09:27 AM,Laraine.Moellendorf
183332,TRUE,5,MVC-Q1,5,3.00,07-01-2020,06-30-2299,06-12-2020 09:09:27 AM,Laraine.Moellendorf
183333,TRUE,6,Wishlist Application,6,5.00,07-01-2020,06-30-2299,06-12-2020 09:09:27 AM,Laraine.Moellendorf
183334,TRUE,7,ASP.NET Web APIs,7,2.00,07-01-2020,06-30-2299,06-12-2020 09:09:27 AM,Laraine.Moellendorf
183335,TRUE,8,API-Q1,8,3.00,07-01-2020,06-30-2299,06-12-2020 09:09:27 AM,Laraine.Moellendorf
183336,TRUE,9,Starchart API,9,5.00,07-01-2020,06-30-2299,06-12-2020 09:09:27 AM,Laraine.Moellendorf
183337,TRUE,10,Dependency Injection,10,2.00,07-01-2020,06-30-2299,06-12-2020 09:09:27 AM,Laraine.Moellendorf

我不会将此数据导入现有表;相反,DBeaver有一个功能,可以在没有现有表的情况下导入CSV,并生成一个具有匹配字段标题和数据类型的表来放置数据。所以,我没有一个模式来提供。
产生错误的错误代码如下:

CREATE TABLE "Software Development".newtable (
    pk integer NULL,
    active boolean NULL,
    "Sequence" integer NULL,
    "name" varchar(32) NULL,
    "Number" integer NULL,
    hours real NULL,
    "Start Date" varchar(10) NULL,
    "Stop Date" varchar(10) NULL,
    "Modified When" varchar(22) NULL,
    "Modified By" varchar(19) NULL
);

在回答Adrian的最后一个问题时,DBeaver可以直接链接到CSV文件,而不是将其数据导入到数据库中的表中。这就是我所说的它不是一个“传统数据库”。

2wnc66cl

2wnc66cl1#

这似乎是dBeaver 21.1.4(https://github.com/dbeaver/dbeaver/issues/13542)的一个问题。当前的解决方法是降级到以前的版本(21.1.3)。

uoifb46i

uoifb46i2#

我已经升级到DDeaver版本 21.2.0,现在一切都正常。我在尝试将查询导出到SQLite表时遇到错误。
因此,解决方案是升级DBeaver。

lvjbypge

lvjbypge3#

我的解决方法是在dBeaver中对CSV和列使用类似“seq_number”的东西,然后将列重命名为“sequence”。不好看,但很管用。我只是对一个名为“depth”的列做了同样的处理。

doinxwow

doinxwow4#

在我的情况下列定界符是问题。我把,改成了;

相关问题