Skip to content

支持按 key 的批量 upsert 记录能力 #396

@zgz2048

Description

@zgz2048

背景

当前如果要实现“按业务主键同步多行数据到 Base”的效果,通常需要手动执行:

  1. list 现有记录;
  2. 按某个业务字段做匹配比对;
  3. 再逐条调用 upsert / create。

这个流程对用户和 agent 都比较重,也不利于做稳定的数据同步。

需求

希望提供类似 +record-batch-create 的批量提交能力,但支持按 key 执行 upsert。

也就是:

  • 输入一批多行数据;
  • 允许指定提交数据中的某一列作为 key;
  • 该 key 对应的字段应满足 not null + unique
  • CLI 根据该 key 匹配现有记录;
  • 匹配到则更新,未匹配到则插入。

期望能力

建议支持一个类似下面语义的命令:

lark-cli base +record-batch-upsert \
  --base-token <base_token> \
  --table-id <table_id> \
  --key-field 工号 \
  --json @data.json

其中:

  • --json 提交多行记录数据,形式与批量创建保持尽量一致;
  • --key-field 指定一个业务主键字段;
  • 对该字段按值匹配后执行批量更新 / 插入。

适用场景

  • 外部系统向 Base 同步员工、客户、订单等主数据;
  • agent 执行批量数据同步时,避免手动 list -> compare -> per-record upsert;
  • 降低多步编排复杂度,减少匹配逻辑在 agent 侧重复实现。

期望返回

返回结果里建议包含本次同步的统计信息,例如:

  • inserted
  • updated
  • skipped
  • failed

这样更适合自动化和 agent 消费。

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain/basePR touches the base domain

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions