您好,感谢您的阅读,也可能对我有所帮助
我的问题的简要说明:
我正在将数据从一个 Firebird 数据库复制到另一个(称为 V14),并且我正在使用 IBExpert 来执行此操作。这些表的名称相同并且具有相同的结构。为了解释的目的,我将调用包含旧数据库 A 中数据的表,而我要插入数据的表应称为 B。
所以唯一要做的就是从表A中取出所有数据并将它们插入到表B中。这样做的一小段代码是:
INSERT into [V14].BSMZ SELECT * FROM BSMZ
执行此操作我收到错误消息(在传输了一些行之后):
无效的插入或更新值:对象列受到限制 - 没有 2 个表行可以有重复的列值。尝试在唯一索引“UI_BSMZ”中存储重复值(对活动事务可见)
此唯一索引包含 2 个数据列,适用于表 B 和 A。
有多个行会导致此问题,但也会根据需要传输多个行。我已经证明,不能插入到表 B 中的行在其唯一键列中具有值,这些值在表 B 中并不存在。
(出于测试目的,我确实从表 B 中删除了约束。但我仍然收到相同的错误消息,这让我更加困惑)
我不太确定是什么导致了这个问题,并希望得到一些提示。