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

Why do I get this DBeaver error when importing data from a CSV file?

我是一名学生,我正在做一个项目。前提是我正在研究的这个程序将学生注册的天数 (M-F)、他们每天注册的小时数以及他们注册的课程作为输入。然后,它在 PostgreSQL 数据库中查询每个模块的进度小时数(作业应该花费多长时间的“面值”),并运行算法,输出学生应该完成的大致截止日期他们的课程在截止日期前完成(这是为整个课程设置的,而不是为单个作业设置的)。

现在,我已经让数据库在过去工作,但对于下一个可交付成果,我正在彻底检查程序以增加对学生选择他们的程序的支持,然后将用适当的课程填充选项菜单。为此,我需要添加更多测试数据。在将其他 CSV 文件导入架构的过程中,出现错误:

Can't load entity attributes

Reason: Can't find target attribute [Sequence]

在CSV文件中,“Sequence”是其中一列的名称。

这个错误是什么意思?而且,我该如何解决呢?我查看了 CSV 文件,没有发现任何明显的错误;标题和所有相关数据都在那里。理论上我可以在 DBeaver 中直接使用 CSV 文件创建连接,而不是将它们的数据导入数据库,我已经测试过这样做并且它确实按预期工作,但是 Python 模块我是使用查询数据库 (psycopg2) 似乎无法找到它,如果我这样做而不是使用传统数据库(这是我在更改数据库之前所做的)。

编辑:针对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

我不会将此数据导入现有 table;相反,DBeaver 具有一项功能,可以在没有现有 table 的情况下导入 CSV,并且将生成具有匹配字段标题和数据类型的 table 以将数据放入其中。所以,我没有可以提供的架构。

产生错误的 DDL 如下:

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 可以 link 直接到 CSV 文件,而不是将其数据导入数据库中的 table。这就是我所说的它不是“传统数据库”的意思。

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

我的解决方法是对 dBeaver 中的 CSV 和列使用类似“seq_number”的内容,然后将该列重命名回“sequence”。它不漂亮,但它有效。我只是针对名为“depth”的列的相同问题执行了此操作。

我已经升级到 DDeaver 版本 21.2.0,现在一切正常。我在尝试将查询导出到 SQLite table.

时遇到错误

所以解决方案是升级DBeaver。