2

我正在使用复制表单在我的数据库中导入日期,当我在没有触发器或引用其他表的表上使用它时它工作正常。当我收到消息时:

"Query returned successfully: 0 rows affected, xxxx ms execution time"

当我禁用所有引用触发器(外键)和 UpdRel 它可以工作,但它们的列返回空。

这些表是使用 CMDB 软件 (CMDBuild) 创建的,并且参考列具有整数类型,换句话说,我正在尝试从另一个表中导入与“代码”列相同的整数。

我正在使用的副本表格:

COPY "TableName"("Col1","Col2","Col3"...) FROM 'C:\file.csv' DELIMITER ';' CSV;

表格示例:

表格1:

Name: Servers
Attributes: Code(Referenced1), Description, Operational_System, IP, Domain, etc

表2:

Name: Hard_Disk
Attributes: Code(Referenced2), Description, Size, Interface, Serial, etc

表3

Name: Servers_X_HD
Attributes: Code, Description, Server(Reference1), Hard_Disk(Reference2), Size, etc..

我已成功导入所有服务器和高清数据,但在导入具有外键触发器的 table3 时遇到问题。

很抱歉,如果它令人困惑,我对 SQL 或一般编码并不是很熟悉,除了我参加的快速 Java 课程外,我主要是一个谷歌搜索学习者。

如果有任何人需要帮助我的信息,我很乐意在我力所能及的范围内提供..

4

1 回答 1

1

我发现了这个问题。所有这些表上都有另一列标记为“id”,它被用来作为外键的引用。

“代码”列只是用作“伪装”,方便用户查看 CMDBuild(使用用户定义的整数,而不是 postgres 随机生成的“id”)。

通过用“id”列上的数字替换“code”列的数字,我成功地从 CSV 复制了信息,没有任何问题。

于 2013-11-18T16:55:32.577 回答