导入excel判断重复值

列段1 列段2为库里的主键 我希望导入的时候根据主键判断是否在库里有重复值 如果有重复值就导入失败 没有的话就导入成功 这种该怎么实现?

image.png

FineReport yzmiFMhw3943802 发布于 2025-10-14 14:26
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
华莉星宸Lv7专家互助
发布于2025-10-14 14:31

JS校验填报值是否在数据库中存在-https://help.fanruan.com/finereport/doc-view-4548.html

联立多字段校验是否与数据库中数据重复-https://help.fanruan.com/finereport/doc-view-3032.html

与数据库中数据对比校验-https://help.fanruan.com/finereport/doc-view-566.html

最佳回答
0
技术支持--哈哈Lv4初级互助
发布于2025-10-14 15:48

实现Excel导入时根据联合主键校验数据重复性的方法如下:

1. 数据库表设计

确保目标表的联合主键(列段1+列段2)已设置唯一约束,数据库会自动拦截重复数据提交

2. 使用「Excel导入建表维护」插件
  1. 插件配置

    • 勾选「主键」选项时,插件会自动识别联合主键字段

    • 导入模式选择「覆盖」或「追加」时,主键重复的数据会被拦截主键设置

  2. 注意事项

    • StarRocks数据库需手动修改字段长度:ALTER TABLE fine_plugin_excel MODIFY COLUMN extraProps VARCHAR(20000)

    • 部分数据库(如StarRocks)驱动可能不显示主键提示,但实际提交会因唯一约束失败

3. 填报模板校验(备用方案)

若需在导入前预校验,可在填报模板中添加以下设置:

  1. 提交校验公式

    GREPARRAY(数据集, 列段1==A1 && 列段2==B1).length == 0
    • 返回true表示无重复,false则阻止提交

  2. 扩展数据校验

    • 对扩展格使用数组函数遍历判断重复值

4. 调试与排查
  1. 使用「填报调试插件」查看提交时的数据过滤情况

  2. 检查调试日志中的主键重复提示(如下图)主键重复提示

总结方案优先级
  1. 首选:通过数据库唯一约束强制拦截(最可靠)

  2. 次选:插件主键配置 + 覆盖导入模式

  3. 补充:填报模板预校验公式

最佳回答
0
超级无敌小熊蛋Lv5初级互助
发布于2025-10-14 15:56

    使用sql函数和报表属性里的数据校验实现。我写一下大概意思哈。在D2单元格里写

=SQL("数据连接","select 列3 from 表名 where 列名1  ="+A2+''  AND 列名2 = "+B2,1,1)

这里SQL函数我可能写的不对,请再检查下哈。

然后将D2单元格设置插入行策略,原值。

然后在报表填报属性里的数据校验,写len(D2) !=0 ,如果不符合这个公式,就提示,库中已有数据

  • 4关注人数
  • 43浏览人数
  • 最后回答于:2025-10-14 15:56
    请选择关闭问题的原因
    确定 取消
    返回顶部