【发布时间】:2023-03-08 10:27:01
【问题描述】:
我想将几名员工的记录从一家公司复制到另一家更大的公司。如果发生主键重复冲突,则必须替换记录。对于 Delphi DataSet,有“插入”、“追加”、“编辑”和“删除”命令,但是否有一种简单的方法可以在不知道完整表结构或主键的情况下“替换”相同表之间的记录?大约有 30 多个字段,将来可能会更改。
在 MySQL 中应该是 REPLACE INTO table2 (SELECT * FROM table1),但我想更改目标表中的一些字段,例如员工 ID 和部门代码。
【问题讨论】:
-
通常我会推荐将模式设置为 dmAppendUpdate 的 FireDAC BatchMove 组件,但由于您似乎坚持使用 Delphi 7,这可能没有帮助。
-
@UweRaabe 我已经想出了一个解决方案,但是 BatchMove 似乎很有趣,因为我使用的是 MyDAC 并且有一个 CRBatchMove 组件。你能告诉我一个如何使用 BatchMove 的例子吗?