DBeaver无法将空字符串导入为NULL

4
我有一个名为prop_info的表格,其中包含对desp的外键引用。我正在尝试导入包含这些信息的csv文件。
prop_code,prop_name,price
ABC,,1.2,
ABB,Apple,5.0,

CREATE TABLE prop_info (
 prop_code CHAR (3) PRIMARY KEY  NOT NULL,
 prop_name VARCHAR (100) REFERENCES desp (product_name) ON UPDATE CASCADE,
 price float NOT NULL
);

CREATE TABLE desp 
(
    product_name VARCHAR (100) PRIMARY KEY  NOT NULL,
    product_desp VARCHAR (100)
);

我试图使用DBeaver上传CSV文件时,遇到了以下错误:

ERROR: insert or update on table "prop_info" violates foreign key constraint "prop_info_prop_name_fkey"
Detail: Key (prop_name)=() is not present in table "desp".

根据PostgreSQL的规定,我有未引用的空字符串。

指定表示null值的字符串。默认情况下,在文本格式中为\N(反斜杠-N),在CSV格式中为空字符串而不加引号。在某些情况下,您可能更喜欢即使在文本格式中也是一个空字符串,以便您不必区分null和空字符串。使用二进制格式时,不允许使用此选项。

这是我的DBeaver出了问题吗?需要帮助。


展示你的copy语句。 - user330315
使用DBeaver的CSV导入功能 - undefined
那么Postgres手册中的引用是无关紧要的,因为它适用于COPY命令。你需要在DBeaver中检查选项,看看是否可以将空字符串视为NULL - user330315
1个回答

10

在DBeaver 21.3.4社区版中,有一个选项名为“将空字符串设置为NULL”对我很有效。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接