三份表拼起来,最怕悄悄覆盖。这里把每个冲突摊开:候选原值、来源文件、行号一个不少,点一下决定采用谁的。
| 合并口径 | 内存哈希做全外连接,不引 SQL 引擎、不落盘;表头按名称归一化对齐(大小写 / 空格 / 全角 / 标点不敏感)。 |
|---|---|
| 四类清单 | matched 命中 ≥2 个源文件、only_in 仅某表存在、duplicate_keys 单表内主键重复、conflicts 同键不同值。 |
| 冲突保留 | conflicts[].values 保留每个源文件的原值、来源名与行号,一个都不丢,供人工裁决。 |
| 冲突策略 | keep_first 取最靠前上传文件的值、keep_last 取最后一份、blank 让冲突单元格留空;三种策略都会完整输出冲突清单。 |
| 主键规则 | key 必须在每一份源文件里都能找到;支持多列复合主键(逗号分隔)、列序号或 col_N;主键全空的行会被跳过并计数。 |
| 常见误填 | 上传顺序决定 keep_first / keep_last 的结果;文件名重复时可用 source_names 指定来源名,避免清单里分不清是哪份文件。 |
月度汇总把三份客户表拼起来,最怕「 silently 覆盖」:某个字段两份表不一样,合并完没人知道该信谁。本工具按主键做全外连接,把匹配、独有、重复、冲突拆成四份清单,冲突项连原值和源文件行号一起保留,让人来拍板。
服务无状态:下载合并结果时会用相同的文件与参数重新提交一次;若中途换了文件,请先重新合并。清单数组可能被截断,总数读 stats。
服务端会点名是哪个文件、哪一列。请统一表头写法(或改用列序号 / col_N),确认后重新上传。
不会丢清单:合并结果按策略取其中一条,全部重复行号在 duplicate_keys[].lines 里,可据此回源表核对。
用逗号分隔多个列名,如 id,month;服务端按组合值做哈希,任一部分为空会影响归组。
这是 conflict_policy=blank 的预期行为:冲突单元格留空等待人工回填,请配合导出的 conflicts_csv 一起处理。
现在只有你自己能看到这条留言(已标上「待审核」),管理员审核通过后才会展示给所有人~
还没有留言,来抢沙发吧!