使用 LOAD DATA INFILE 时,有没有办法获得常规 INSERT 语句的 ON DUPLICATE KEY UPDATE 提供的相同功能?
我想要做的是:对于我文件的每一行,如果该行不存在,则插入一个新行,否则更新所选字段。
我的表有 5 列:A、B、C、D 和 E。A 是主键。有时,我必须插入包含所有值的新行,但有时我只需要更新 B 和 C,例如。但是,关键是我想将所有 INSERT 或 UPDATE 重新组合在同一个文件中。
谢谢
使用 LOAD DATA INFILE 时,有没有办法获得常规 INSERT 语句的 ON DUPLICATE KEY UPDATE 提供的相同功能?
我想要做的是:对于我文件的每一行,如果该行不存在,则插入一个新行,否则更新所选字段。
我的表有 5 列:A、B、C、D 和 E。A 是主键。有时,我必须插入包含所有值的新行,但有时我只需要更新 B 和 C,例如。但是,关键是我想将所有 INSERT 或 UPDATE 重新组合在同一个文件中。
谢谢
如果要插入/更新某些字段,则应将数据加载到附加表中,然后使用 INSERT、UPDATE 或 INSERT...SELECT+ON DUPLICATE KEY UPDATE 语句复制/修改数据;否则其他字段将设置为 NULL。
在这种情况下,LOAD DATA INFILE 中的 REPLACE 选项对您没有帮助。
此外,您可以使用dbForge Studio for MySQL(免费快递版)中的数据导入工具(CSV 格式),只需选择追加/更新导入模式并在数据导入向导中指定字段映射。